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....
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步