java程序占用cpu过高分析

一般情况下,是由于线程引起的(本文只讨论一般情况)
首先连接到服务器,使用top命令查看占用cpu高的java服务进程
java程序占用cpu过高分析
然后根据PID,执行 top -Hp指令,观察内部线程情况
java程序占用cpu过高分析
观察到PID为222033的占用了99.9%的cpu,然后将其PID转为16进制:
java程序占用cpu过高分析
得到为0x36351

使用指令jstack -l 218043 打印出线程快照,寻找其中nid为0x36351的堆栈,找到相应的程序里的方法,然后去分析原因优化即可。

分类:

技术点:

相关文章: