Linux下解决CPU占用率100%问题的步骤

CPU占用率100%问题的解决步骤

  • 1. 确定cpu占用率高的进程ID - PID
  • 2. 查看进程中cpu占用率高的线程ID - TID
  • 3. 将线程ID - TID 转换成16进制 - XTID
  • 4. 将进程中的所有线程输出到文件
  • 5. 在输出文件中查找对应的线程ID

我们经常会解决一些cpu占用率100%的问题,有些问题可能比较容易分析,比如正在处理大文件、或进行复杂运算。但是有些问题往往隐藏的比较深,因此需要进行稍微专业一点的分析,看看是哪些进程占用了cpu资源,进而分析是进程中的哪些线程占用了cpu资源,最终通过导出堆栈轨迹,分析是哪块代码出现了问题。

现整理解决该问题的大致步骤,供大家参考:

1. 确定cpu占用率高的进程ID - PID

在Linux下可以使用 jps -v 或者 top 命令直接查看。

2. 查看进程中cpu占用率高的线程ID - TID

执行top -H -p [PID],查看结果

3. 将线程ID - TID 转换成16进制 - XTID

执行printf "%x\n" [TID],输出结果记为 XTID

4. 将进程中的所有线程输出到文件

执行命令jstack [PID] >> jstack.txt

5. 在输出文件中查找对应的线程ID

执行命令cat jstack.txt | grep -i [XTID]

你可能感兴趣的:(Java)