排查过程
查消耗cpu最高的进程Pid 根据Pid查出消耗cpu最高的线程号 根据线程号查出对应的java线程,进行处理。
查消耗Cpu最高的进程PID
执行命令
top -c ,显示进程运行信息列表。按下P,进程按照Cpu使用率排序如下图所示,PID为3033的进程耗费Cpu最高
根据Pid查出消耗Cpu最高的线程号
执行命令
top -Hp 28632
如下图所示,PID为28632的线程耗费Cpu最高
这是十进制的数据28667,转成十六进制为6ffb
printf "%x\n 10" 28667
jstack -l 28667 > /tmp/28667.stack
然后执行,grep命令,看线程0xbda做了什么
cat 28668.stack |grep ‘6ffb‘ -C 8
输出如下
至此定位到问题
原文:https://www.cnblogs.com/xzlive/p/15089531.html