1、找出最耗费cpu的进程号
例如:4414
[sms@stat ~]$ top
2、找出此进程下的所有线程
从中找出cpu最高的线程id
[sms@stat ~]$ top -p 4144 -H
3、将线程id十进制数转为16进制
[sms@stat ~]$ printf "0x%x\n" 222910x5713
4、把线程dump出来
将此进程号的Java堆栈信息打印到文件中
[sms@stat ~]$ jstack 4144 >cpu.log
5、查找nid=0x5713的内容,即可跟踪到具体的线程代码
"http--8080-543$1705001939" daemon prio=10 tid=0x00002b70f017e000 nid=0x5713 runnable [0x00002b7101bca000]