码迷,mamicode.com
首页 > 其他好文 > 详细

定位JVM中占CPU较高的堆栈

时间:2014-06-05 11:58:50      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:jvm   线程   linux   java   占用cpu过高   

疑问:

在linux中,使用top命令,发现某java进程占用CPU较高,如何定位到是那个线程,执行哪些代码导致的呢?

 

第一步:找到占用CPU较高的进程号,使用top命令查看。

bubuko.com,布布扣bubuko.com,布布扣

从上图可以看到,java进程号为759的进程占用cpu特别高。


第二步:查看当前进程759所有线程占用cpu情况

使用top –Hp pid 来查看,shift + t命令展示或关闭线程情况。

bubuko.com,布布扣bubuko.com,布布扣

从上图,可以看出760的java线程占用CPU较高。


第三步:查看760线程的堆栈信息。

使用命令 jstack 759 | grep –A 100x2f8

其中jstack是java命令,可以在JDK bin目录找到该命令。759为上述java进程号,-A表示查询到所在行后10行。0x2f8是java线程760转化为十六进制,注意全部转化为小写。

bubuko.com,布布扣bubuko.com,布布扣

如上图,打印了java堆栈信息,可以根据堆栈信息,检查代码,查找并分析占用CPU过高原因。






定位JVM中占CPU较高的堆栈,布布扣,bubuko.com

定位JVM中占CPU较高的堆栈

标签:jvm   线程   linux   java   占用cpu过高   

原文地址:http://blog.csdn.net/fangchao2061/article/details/27378799

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!