Java应用高CPU排查
1、命令top
查看高CPU
应用的PID(进程ID)
。
2、命令ps
查询线程ID
,awk
处理数据,并将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行。
(配图非事故现场图[呲牙])
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jona's Blog!