系统CPU飙高分析步骤

1.top命令,查看cpu比较高的进程ID


2.找到cpu比较高的进程ID之后,然后使用top -Hp 进程ID查看占用cpu比较高的线程


3.找到占用cpu比较高的线程ID,使用printf '%x\n' 线程ID,将线程ID转化为16进制显示

4.使用jstatck 进程ID|grep -a 线程的16进制(-a 30是显示前30行)打印出线程栈信息

然后通过打印出的线程栈信息分析cpu比较高的原因

打印进程下所有的线程栈信息,输出到指定目录,便于进行日志分析
jstack 进程ID >/home/具体目录/jstack.log

查看某个进程内存中对象占用的大小,head -n 300输出300行
jmap -histo:live 进程ID | head -n 300

查看gc日志,1000 10标识1000ms输出一次,共10次
jstat -gcutil 进程ID 1000 10

猜你喜欢

转载自blog.csdn.net/dhj199181/article/details/110733287