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占用高排查与定位的主要内容,如果未能解决你的问题,请参考以下文章

线上应用故障排查之一:高CPU占用

JVM探秘:线上CPU占用过高故障排查

压测过程中故障排查之一:高CPU占用问题分析案例

Java进程CPU占用高导致的网页请求超时的故障排查

线上应用故障排查之二:高内存占用(转)

JVM 线上故障排查基本操作--CPU飙高