思路:
1.定位进程导致CPU过载
2.线程导致CPU过载
3.代码导致CPU过载

开始操作:
执行top -c ,显示进程运行信息列表
键入P (大写p),进程按照CPU使用率排序Java工程服务CPU100%问题处理方法
top -Hp 3406 ,显示一个进程的线程运行信息列表
键入P (大写p),线程按照CPU使用率排序
Java工程服务CPU100%问题处理方法
执行: printf “%x\n” 5956
Java工程服务CPU100%问题处理方法
16进制,是因为堆栈里,线程id是用16进制表示的。

执行查看堆栈信息:jstack 3406| grep ‘1744’ -C5 --color
通过线程id,过滤得到线程堆栈
Java工程服务CPU100%问题处理方法
找到了耗CPU高的线程对应的线程名称,以及看到了该线程正在执行代码的堆栈。

相关文章: