Java高CPU占用原因排查

top命令发现某个进程占用了100%的CPU

这里写图片描述


通过ps命令,进一步确定哪个进程出了问题

再查看线程占用CPU的列表

# ps -mp PID -o THREAD,tid,time

这里写图片描述


找到占用CPU最高的线程,查看TID,将其转换为16进制格式

# printf "%x\n" TID


而后查看堆栈信息

# jstack PID |grep 16进制TID -A 60


这里报错是因为tomcat进程运行用户为tomcat,而当前以root用户查看堆栈信息

这里写图片描述


因此切换为tomcat执行命令

# sudo -u tomcat jstack 32072 |grep 1541 -A 60 # sudo -u tomcat jstack -J-d64 -m 32072

本文永久更新链接地址

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15086.html