线上排查 CPU 100% (适用于 线上的一些 java 应用)

线上排查 CPU 100% (适用于 线上的一些 java 应用)

1、确定Java应用进程编号

ps -ef | grep java

2、查看CPU较高的进程

top -c

线上排查 CPU 100% (适用于 线上的一些 java 应用)

3、查看Java应用中线程CPU占比

top -H -p 123428 命令查看指定进程下的线程cpu占用比例,分析是具体哪个线程占用率过高

线上排查 CPU 100% (适用于 线上的一些 java 应用)

4、查看线程信息

从中选择占比较高的线程的编号(PID) ,并将该PID转换为16进制 。

这里 转换16进制的方式,命令行:printf "%x " 123887

1e3ef

线上排查 CPU 100% (适用于 线上的一些 java 应用)

通过jstack 123887 | grep -A 10 1e3ef

到这里 基本能定位 问题是出在 哪一行代码的地方了 ,so ,fix it

然后上线!!!