JAVA-CPU飙高问题排查

排查思路:先定位到进程中的线程,然后使用jstack查看线程的信息

1. 使用top命令查看占用CPU高的进程

2. 使用top -p 单独查看进程,pid为进程ID

JAVA-CPU飙高问题排查_第1张图片

按H(大写),获取每个线程的情况
JAVA-CPU飙高问题排查_第2张图片

3. 使用 jstack 打印信息

因为 jstack 打印出的信息中,线程ID使用的是十六进制,所以需要将占用内存高的线程ID转换为十六进制
比如上面的 19664 转为 4cd0 ,可以使用百度转换
JAVA-CPU飙高问题排查_第3张图片

执行 jstack 19663|grep -A 10 4cd0 查看线程栈信息,注意将十六进制转换为小写

jstack [进程ID]|grep -A 10 [线程ID十六进制小写]

JAVA-CPU飙高问题排查_第4张图片

你可能感兴趣的:(java,linux,开发语言)