转载: 查询哪个线程占用大量CPU
1、确定Java进程ID
ps -ef | grep 'java'
或 jps -l
找出对应的java应用程序对应的进程ID号:
2、确定该进程中,占用CPU最高的线程
根据应用程序对应的进程ID查找该进程ID的全部线程,并且按照CPU使用率进行排序,占用CPU使用率最高的动态显示在第一行。
以进程ID:为例,top -H -p 27828
3、将线程ID转换成16进制
最高CUP线程ID:8094
输入命令: printf "%x\n" 8094
结果为:1f9e
4、使用 jstack命令,导出线程转储信息。
jstack 27828 > process27828.txt
将进程ID:27828 全部堆栈信息放入process27828.txt文件中。