Linxu系统的JAVA程序CPU占用过高故障排查

本文介绍了一种排查服务器上Java进程CPU占用过高的方法。通过使用特定命令找到占用CPU极高的线程,并进一步定位到具体代码行,最终修复了死循环导致的问题。

在监测系统cpu运行情况时,出现了一个进程占用CPU百分比极高的情况

服务器上的java进程占用过高,初步猜测是某处陷入死循环。接下来要排查故障是在哪一行代码出的错

输入命令:  ps -mp PID -o THREAD,tid,time



指令 (printf "%x\n" 12380) 将TID从十进制转化成十六进制。得到  305c

可以看到TID为12380(305c)的线程CPU占用率异常。

进行下一步的排查

输入指令查看线程是由哪一行代码开启 : jstack pid | grep tid -A 30

进入代码查看相关问题确实发现阻塞线程并未阻塞造成死循环。更改阻塞时间修复BUG,重新提交到服务器。

恢复正常。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值