top命令找到占用CPU最高的java线程

1、使用jps查找正在运行的java进程
2、通过使用top命令查找该线程下CPU使用最高的线程

  top -Hp pid: 即   top -Hp 2860

 3、TIME列就是各个Java线程耗费的CPU时间,显然CPU时间最长的是ID为2968的线程,用 printf "%x\n" 2968

  可得到2968的十六进制值为:b98

4、终于轮到jstack上场了,它用来输出进程2860的堆栈信息,然后根据线程ID的十六进制值grep,如下:

 

  

  可以看到CPU消耗在SessionTracker这个类的Object.wait(),于是就能很容易的定位到相关的代码了。



1
posted @ 2024-03-28 15:35  cindylpp  阅读(31)  评论(0编辑  收藏  举报