CPU100%问题定位

性能测试过程中,对于非java项目,遇到CPU100%问题的简易处理步骤:

1.Linux下非常实用的命令:top

找到最耗CPU的进程ID,如:3434

2.找到此进程下,最耗CPU的线程:top -p 3434 -H

会发现有很多线程ID,记下看着比较大的线程ID,如:62633

3.使用jdk自带的命令jstack,将堆栈信息打印到文件中:

jstack 3434 >cpu0307.txt

4.打开此文件,发现线程ID是16进制的,这个时候,伟大的计算器出场:


查看中选择程序员类型,输入刚才记录的线程ID,如:62633;输入后点击十六进制


在导出文件中搜索对应的线程ID,对应内容就是CPU使用高的原因;

一般遇到CPU高,需要先进行初步判断,然后根据判断来调整tomcat/conf/server.xml线程池配置后继续测试(如系统存在大量静态资源,建议先做完动静分离后,再测试。)

猜你喜欢

转载自blog.csdn.net/renjx_tutu/article/details/78732808