使用jstack可以定位到线程堆栈,根据堆栈信息可以定位到具体代码
第一步:top命令找出占用cpu最大的PID
# top
第二步:使用top -Hp PID找出占用资源的线程号
# top -Hp 1144
第三步:printf "%x\n" threadID得到一个十六进制值
# printf "%x\n" 62238
第四步:jstack PID | grep -A 100 十六进制值 //输出搜索结果的近100行,锁定耗费资源的代码位置
# jstack 1144|grep -A 100 0xf31e