linux cpu过高
排查java进程占用CPU过高思路
1.提取占用CPU过高的进程
方法一:使用top查找到占用CPU高的进程的pid
top -d 1
方法二:使用ps查找到tomcat运行的进程pid
ps -ef | grep tomcat
2.定位问题线程的pid
(此处pid为上一步找到的进程id)
方法一:使用top查询该进程下所有线程的运行情况
top -Hp pid
方法二:使用ps查看该进程的线程情况
ps -mp pid -o THREAD,tid,time
3.将线程的pid转换为16进制
(此处的pid为上一步找到的占CPU高的线程id)
printf ‘%x\n’ pid
4.用jstack打印线程信息 ,可将信息重定向到文件中
(pid为第一步找到的进程id,tid为第三步转换的线程id)
jstack pid |grep tid
例如:jstack 30116 | grep -A 20 75cf 或 jstack 30116 |grep 75cf >> jstack.out
5.进行分析