JAVA进程高load问题排查思路

概览

  • 获取 pid

top -c

  • 获取 tid

top -Hp pid

  • 转换16进制

printf ‘%x\n’ tid

  • 看线程堆栈

jstack -l pid |grep -A 10 ‘nid=0xHexTid’


分步说明

获取 pid

jps -l
(-l 输出main类或Jar的全限名)
(-v 输出传入JVM的参数)

ps -ef|grep java

  • 查看进程占用
    (默认按照cpu占用降序排列,-c显示进程全部命令参数)

top -c

确认CPU占用较高


获取 tid

  • 显示指定进程下面的线程信息

找出进程中最耗cpu的线程
(H : 显示进程下的线程)
(-p 指定进程)

top -Hp pid


tid 转换16进制

  • tid(179)换算成16进制(b3)

命令转换

printf ‘%x\n’ 179

在线转换
https://tool.oschina.net/hexconvert/


查看jstack 生成的文件

jstack pid | grep tid

jstack 进程id| grep 16进制线程id
eg: jstack 1 | grep 0xb3

jstack -l 进程id |grep -A 10 ‘nid=0x16进制线程id’

(-l 会打印出额外的锁信息)

eg: jstack -l 1 |grep -A 10 ‘nid=0xb3’

reference

  • https://www.kancloud.cn/dztec/jvm_mon/1482104
  • https://www.jb51.net/article/261532.htm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值