查看java进程占用cpu过高


查看java进程占用cpu过高

之前平台出现过一次java进程占用cpu 100%的问题,发现后排查的几率如下:

  1. 使用top查找哪个继承占用cpu过高 记录下进程如:14492

  2. 把进程的栈dump到文件里,以便后面的分析

    1
    jstack 14492 > cpu0401.log
  3. 看看这个进程里面哪些线程在占用cpu

    1
    top -p 14492 -H  # 选择占用最高的 PID=5159
  4. 接着要看刚才dump出来的cpu日志了,里面会有14492这个进程下面每个线程的栈信息,但是是十六进制显示的,所以先把5159转换成16进制

    1
    printf %0x 5159  # 1427
  5. 在cpu日志里找PID=1427的线程

    1
    vim cpu0401.log