排查JVM线程占用CPU

301 阅读1分钟

线上经常会碰到某个jvm进程cpu高的情况,对于这种情况我们要是能找到对应线程的cpu占用情况,找到对应线程的堆栈信息,能更好的帮我们定位问题。

  1. 查看占用cpu高的进程,通过top 命令查看
  2. 显示当前进程下的所有线程列表,ps -mp pid -o THREAD,tid,time\

显示当前进程下的所有线程列表.png

  1. 转换16进制,printf "%x\n" tid
  2. 打印堆栈,jstack pid,找到对应线程的堆栈,定位问题