0%

CPU飙升

CPU飙升

常见原因

  • 频繁gc
  • 死循环、线程阻塞、io等待等

问题查找

  • 首先应该定位cpu占用最高的进程(找到pid)

    1
    top
  • 然后根据pid来找到使用cpu最高的线程

    1
    top -Hp pid

    或者使用

    1
    ps -mp pid -o THREAD,tid,time
  • 将线程id转为十六进制

    1
    printf '0x%x' tid
  • 找到该线程的堆栈信息

    1
    jstack pid | grep 十六进制tid -A 200

    根据堆栈信息找到业务代码所处的位置查看问题

欢迎关注我的其它发布渠道