王磊的个人技术记录 王磊的个人技术记录

记录精彩的程序人生

目录
Java 进程高 CPU 占用故障排查
/  

Java 进程高 CPU 占用故障排查

场景分析:
生产环境下 Java 进程高 CPU 占用故障排查

解决过程:
一、根据 top 命令,发现 PID 为 8540 的 Java 进程占用 CPU 高达 300%,出现故障。
top | grep Java

二、找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照 CPU 占用高的线程排序:
ps -mp {pid} -o THREAD,tid,time | sort –rn

三、将需要的线程 TID 转换为 16 进制格式
printf "%x\n“{tid}

四、 使用 jstack 命令打印出该进程下面的此线程的堆栈信息:
sudo jstack {pid} | grep -A 5 {16 进制的 tid}

五、导出堆栈信息
Jstack {pid} | grep –A 5 {16 进制的 tid} > file.txt


标题:Java 进程高 CPU 占用故障排查
作者:wanglei03
地址:https://wangleijava.com/articles/2020/05/12/1589254936327.html