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

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

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

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

命令:ps -ef|grep 22630

Java线上应用故障之CPU占用高排查与定位_线程状态_02

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

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

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

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

命令:printf "%x" 22657

结果:5881

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

命令:jstack 22630|grep 5881 -A 30

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

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