1、命令top查看高CPU应用的PID(进程ID)
2、命令ps查询线程IDawk处理数据,并将TID(线程ID)转换成16进制展示

1
ps -mp pid -o THREAD,tid,time | awk '$2 > 30 {printf("%s \t %x\n",$0,$8)}'

命令中的30表示CPU使用率超过30%。
3、命令jstack查询高CPU线程栈。

1
jstask PID |grep -A 30 TID

PID是第一步查询到的高CPU进程ID。
TID是第二步中高CPU线程ID,这里要用转换过的16进制字符串。
-A 30 表示显示找到TID之后的30行。

(配图非事故现场图[呲牙])

img