排查思路:

1、先找到占用CPU高的进程PID    top命令

2、top -H -p <PID>  查看哪个占用CPU高的线程Thread-ID,先把它记下来,留待第4步使用

3、jstack <PID>  /home/aaa.log   将堆栈信息存储到文件中,下载文件

4、将步骤2的线程ID,转成十六进制,在aaa.log中搜索,便可以看到该线程的调用栈,便可知道该线程在执行什么代码

 

 

补充说明:

1、查看线程的执行时长:    ps -mp <PID>-o THREAD,tid,time

2、linux下,将十进制转成十六进制:    printf    %x  <TID>

3、打印堆栈信息(-A可以打印多少行):   jstack pid | grep <TID> -A 100

4、查看某个PID对应的是哪个程序:    ps <PID>

5、线程状态:WAITING、RUNNABLE、TIMED_WAITING....

相关文章:

  • 2021-09-03
  • 2021-08-10
  • 2022-03-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-20
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
  • 2021-05-16
  • 2022-12-23
相关资源
相似解决方案