Skip to content

cpu占用率高排查思路

1.top命令找出cpu占用率高的进程pid

2.top -H -p pid 找出cpu占用率高的线程tid

3.printf "%x" tid命令打印出tid的十六进制形式

4.jstack pid | grep 十六进制tid -A 行数打印堆栈信息 或者 jstack pid >> log.txt将堆栈信息保存在文件中,再从文件中查找对应线程的信息

5.jstat -gcutil pid 5000 每隔5秒打印一次gc情况

S0:幸存1区当前使用比例
S1:幸存2区当前使用比例
E:伊甸园区使用比例
O:老年代使用比例
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

6.jmap -heap pid 查看堆内存详细信息

7.jmap -histo pid > xxx.log 输出gc日志到文件