1. 介绍
1.1 排查步骤
-
查消耗cpu最高的进程PID
-
根据PID查出消耗cpu最高的线程号
-
根据线程号查出对应的java线程,进行处理
1.2 Linux
- top -c:显示进程运行信息列表。按下P,进程按照cpu使用率排序
- top -Hp「pid」:显示一个进程的线程运行信息列表。按下P,进程按照cpu使用率排序
- printf "%x\n" 「pid」:线程号是10进制,在堆栈信息中,线程号是16进制,因此可以先通过命令转换为16进制
- jstack 「pid」 > temp.stack:打印进程堆栈,通过线程ID(16进制),过滤得到线程堆栈
- cat temp.stack | grep 'pid':查看堆栈信息