linux jvm cpu过高排查:

偶尔善良 提交于 2020-08-10 16:19:45

执行top查看cpu过高的进程:

top -H -p 32933 查看其内部线程:

cpu占用最高的是33215

printf "%x\n" 33215 获取33215的8进制值 81bf

jstack -l 32933 > tempfile.txt 打印堆栈日志

jmap -dump:format=b,file=heap1.hprof 32933

 

可以查看jstack 指令的用法,注意:这里的pid不能直接用33215 ,要用父级线程的pid,不然会报错

Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding

解决方式:https://blog.csdn.net/u011250186/article/details/99676292

但过于麻烦,直接就用父进程的id导出jstack -l 32933 > tempfile.txt,就可以了

然后在tempfile.txt 文件中根据查找81bf,就能找到33215 的信息。

红色的就是我自己的代码中的问题代码,这样就能定位到自己的代码问题了。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!