问题描述:近期发现生产环境一组服务器CPU突然飙高,排除死循环及CPU密集型可能性。
解决过程:

1、top (top -H)查询CPU占用率较高的进程;

Linux下排查JVM的CPU偏高问题
 

2、ps -mp 15301 -o THREAD,tid,time|sort -rn |more 查询该进程下所有线程,倒叙排列查找CPU占有率最高的线程;


Linux下排查JVM的CPU偏高问题
 
3、printf "%x\n"16226 将tid 转化为16进制格式;


Linux下排查JVM的CPU偏高问题
 
4、jstack 15301 |egrep '3f62|419c|41cd' -C10|more 通过堆栈定位相关代码。

Linux下排查JVM的CPU偏高问题
 
由此可知晓:LinkedTransferQueue队列有问题了,具体原因细看代码。




 

相关文章: