JVM性能排查--CPU占用高

排查思路:

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....

posted @ 2019-09-02 20:36  阿狸哥哥  阅读(629)  评论(0编辑  收藏  举报