CPU负载过高排查与解决

1.linux下top看一下是不是Java进程导致的

CPU负载过高排查与解决_第1张图片

2.top -Hp [pid] 查看是进程下的哪个线程导致cpu过高的

top -Hp 9729

CPU负载过高排查与解决_第2张图片

3.jstack [pid]|grep [线程id的16进制]

jstack 9729|grep -i -B 10 -A 50 262b

上图的9771 转换为16进制是(可以用电脑自带的计算器转换) 262b
grep -i -B 10 -A 50 262b
-i 表示忽略大小写 -B 10 找到关键字262b显示其前10行 -A 50 找到关键字262b显示其后50行
CPU负载过高排查与解决_第3张图片
我这里因为优化过所以看不到什么问题

给个有问题的
CPU负载过高排查与解决_第4张图片

看到locked就是有问题的,locked下面的就是导致locked的代码,我这一看是tomcat导致的的。。。。

tomcat的都没跑起来啊,很明显配置给低了,我是自己的虚拟机。

当然如果是错误代码是你们自己写的代码那自己去看看代码逻辑进行优化

至此
感谢!

你可能感兴趣的:(cpu,jvm,tomcat,jvm,cpu,tomcat)