首页 > 代码库 > 定位JVM中占CPU较高的堆栈
定位JVM中占CPU较高的堆栈
疑问:
在linux中,使用top命令,发现某java进程占用CPU较高,如何定位到是那个线程,执行哪些代码导致的呢?
第一步:找到占用CPU较高的进程号,使用top命令查看。
从上图可以看到,java进程号为759的进程占用cpu特别高。
第二步:查看当前进程759所有线程占用cpu情况
使用top –Hp pid 来查看,shift + t命令展示或关闭线程情况。从上图,可以看出760的java线程占用CPU较高。
第三步:查看760线程的堆栈信息。
使用命令 jstack 759 | grep –A 100x2f8
其中jstack是java命令,可以在JDK bin目录找到该命令。759为上述java进程号,-A表示查询到所在行后10行。0x2f8是java线程760转化为十六进制,注意全部转化为小写。如上图,打印了java堆栈信息,可以根据堆栈信息,检查代码,查找并分析占用CPU过高原因。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。