排查Java应用Cpu过高问题
定位具体线程日志
# 倒序排列服务进程PID所对应的占用cpu使用率最高的线程TID
# 这里是容器内的进程,可以看到是7
top -Hp 7
# 将对应线程TID 16进制处理
printf "%x0\n" {TID}
# 查看线程
jstack {PID}|grep "0x{16进制后的TID}" -A10 --color
jstack 7|grep "0x{16进制后的TID}" -A10 --color
Dump堆栈信息
jmap -F -dump:format=b,file=service.dump 7
# 下面这个比较快
jmap -dump:file=service.dump 7
# 进入宿主机
find / -name "service.dump" -type f
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Hunter
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果