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.进行分析
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步