第一步:使用
top命令,然后按shift+p按照CPU排序
找到占用CPU过高的进程的pid
第二步:使用
top -H -p [进程id]
//top -H -p 4898
找到进程中消耗资源最高的线程的id
第三步:使用
echo 'obase=16;[线程id]'| bc或者printf "%x\n" [线程id]
//echo 'obase=16;11233'| bc
将线程id转换为16进制(字母要小写)
bc是linux的计算器命令
第四步:执行
jstack [进程id] |grep -A 10 [线程id的16进制]
//jstack 11233 | grep -A 10 2BE1
//jstack 11233 | grep 2BE1 -A90
查看线程状态信息
jstack可能需要在jdk下bin下执行