Java应用CPU使用率过高排查
线上服务器的CPU使用率达到100%,相信这是每个Java程序员工作生涯中大概率会遇到的一个问题。那么遇到这种情况,我们应该怎么去进行定位排查呢?
接下来,分享给大家一个十分简单、但是及其有效的套路。
(1)使用top命令确定CPU占用过高的进程pid
top命令执行后,可以看到Pid为1707的进程占用了大量CPU资源
(2)查看该进程pid下的线程情况
命令:top -Hp 1707
从结果看,该进程下的2651/3485/1979等线程耗费了大量的CPU时间
(3)将线程id转化为16进制
命令:printf ‘%x’ 2651
(4)通过jstack命令查看线程执行情况
命令:jstack 1707 | grep -A 10 nid=0xa5b
看到这,相信大家已经不难定位到有问题的代码了吧?
没有评论