Java程序CPU持续飙高,如何排查?

Java程序CPU持续飙高,如何排查?
先top找下占用cpu最高的线程
获取进程使用cpu最高的线程
将线程ID转为十六进制
jstack工具跟踪堆栈定位代码
 
#Java #故障排查 #Linux
先top找下占用cpu最高的线程
top
在这里插入图片描述
 
获取进程使用cpu最高的线程
top -Hp 2147671(进程号)
在这里插入图片描述
 
将线程ID转为十六进制
printf “0x%x” 2148212
在这里插入图片描述
 
jstack工具跟踪堆栈定位代码
jstack 2147671 | grep 0x1f5940 -A 5
在这里插入图片描述
 
我这边是放着线程池中处理了,所以会有线程池的名称“thread-task-updateKline-1m” 你代码写的好的话,这里可以直接定位到你代码的行数。 -A 5 的意思是定位当前位置的以下5行信息。
https://blog.csdn.net/qq_40338564/article/details/139113797
posted @ 2025-05-26 09:34  技术颜良  阅读(95)  评论(0)    收藏  举报