性能测试过程中,对于非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线程池配置后继续测试(如系统存在大量静态资源,建议先做完动静分离后,再测试。)