如何排查CPU使用率过高?
如何排查CPU使用率过高?
首先登录到服务器上,看一下具体情况。
定位进程
登录服务器,执行top命令,查看CPU占用情况。
通过Top命令,可以看到,占用CPU最高的是PID为41846的这个java进程。
定位线程
由于 Java 程序是单进程多线程模型,因此需要进一步定位具体是哪个线程的CPU占用最高。 同样是使用top命令:top -Hp 41846
top -Hp 41846
命令可以看到,当前进程下,线程ID为19327的占用CPU最高。
定位代码
首先将线程ID转成16进制
接下来就可以通过jstack来查看栈信息
通过输出的栈信息日志,可以看到,是CPUSpikeDemo这个类的第18行可能有问题。