Linux下如何定位Java进程CPU利用率过高原因

首先通过Top命令查看占用CPU较高的进程PID,执行Top之后按1可以查看每个核占用比例

top


这里由于我是用的虚拟机,即使我的Java进程占用CPU很高也只是占的虚拟机的,而对整个机器的CPU来说占的并不高。这里我们找到了pid=7957
然后我们在根据pid找出占用CPU过高的线程

top -H -p 7957


然后根据线程id=7958使用strace -p命令查看调用情况

发现系统在不停的打印1
然后把线程十进制的线程id=7958转换为十六进制

最后抓取堆栈信息,查看代码位置


我看找到了线程7958,并且定位到了Test.main第四行,我们打开代码看看

你可能感兴趣的:(java,cpu,进程,高,利用率)