Zacard's Notes

线上java项目cpu100%排查步骤

1.利用top命令查找异常进程

top

输入top命令后,可以按P(shift+p)根据cpu占用排序、按M根据内存占用排序、按T根据运行时间排序。

这里先按P根据cpu排序查找异常的线程:

可以看到,有个pid为19132的线程占用cpu400%(这里是因为4核,每个cpu都100%,加起来就是400%)

2.根据记录的pid查找其线程占用情况

top -Hc -p 19132

说明:这里-Hc是指按照cpu占用降序

这里可以看到这个pid为31395的线程cpu占用非常高,且运行时间也非常长,肯定是有问题的。

3.打印出异常进程信息

先根据第1步查出的pid,打印出线程堆栈信息到文件:

jstack 19321 > stack-19321.log

根据第二步查出的pid,打印出其16进制:

printf %x 31395

7aa3

然后去stack-19321.log文件里查找7aa3:

vim stack-19321.log

/7aa3

即可。

坚持原创技术分享,您的支持将鼓励我继续创作!

热评文章