linux中jvm cpu使用率过高,linux jvm cpu过高排查:

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

f9443ad6f4b8906135aedaf840b0d7fb.png

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

9101d5b24f9b689f80d2038f84914924.png

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 的信息。

f3800bc5481255cd83aceb97f1f564ec.png

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

来源:oschina

链接:https://my.oschina.net/u/3971821/blog/4482487

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值