Java线上应用故障之CPU占用高排查与定位

Posted hch的随笔 成功的秘诀在于恒心—迪斯雷利

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java线上应用故障之CPU占用高排查与定位相关的知识,希望对你有一定的参考价值。

最近线上频繁报警CPU空闲不足,故紧急排查后分享给大家

1、使用top命令,获取占用CPU最高的进程号

技术分享

2、查看线程号对应的进程信息

命令:ps -ef|grep 22630

技术分享

3、查看进程对应的线程信息

命令:ps -mp22630-oTHREAD,tid,time | sort -nr| head -15

技术分享

4、选取第一个线程号,转换成16进制

命令:printf "%x" 22657

结果:5881

5、使用jstack查询出具体的线程状态

命令:jstack 22630|grep 5881 -A 30

技术分享

通过这些线程状态便可基本定位问题之所在

以上是关于Java线上应用故障之CPU占用高排查与定位的主要内容,如果未能解决你的问题,请参考以下文章