CPU占用过高问题排查
Dec 15, 2017
转载:原文看这里
看到一篇文章关于CPU load100%问题的排查思路,故实操整理一遍。
Step-1:找到CPU占用最高的进程
$ top -c //显示进程运行信息列表
$ P //进程按照CPU使用率排序
图例:
上图中消耗CPU最高的进程号为4150
Step-2:找到进程中CPU消耗最高的线程
$ top -Hp 4150 //显示一个进程的线程运行信息列表
$ P //线程按照CPU使用率排序
图例:
进程4150
内,最耗CPU的线程为4157
Step-3:将线程ID转换为十六进制
$ printf “%x\n” 4157 //结果为“103dn”
Java堆栈里,线程id是用16进制表示的
Step-4:查看堆栈中当前线程在做什么
$ jstack 4150 | grep ‘103dn’ -C5 –color