轻松排查Java 占用CPU 100%的原因!!!

最近项目部署后发现服务器好慢 - - 

打开看了一下后台监控,不看不知道啊 - -  CPU资源被JAVA 进程 占了近 100%了!

搞他!

(所有命令我已标红,文章中出现的PID 如:5286  5559   都是作者自己的哦,使用时要替换为你自己的!!!)


使用  top 命令查看cpu使用情况 - -

轻松排查Java 占用CPU 100%的原因!!!

Java占用了这么多CPU资源 = =  PID是  5286

使用命令导出相关日志

使用 jstack -l 5286 > ./5286.stack   5286是你的PID

往下查看具体线程

使用  top -Hp 5286 命令查看具体线程

轻松排查Java 占用CPU 100%的原因!!!

原来是 PID 为5559的线程 - -    

要想定位具体代码的话 要把 5559 转为16进制 = 15b7

下面根据日志定位具体代码

使用命令 grep '15b7' -C 20  5286.stack  定位日志

轻松排查Java 占用CPU 100%的原因!!!

最后发现问题出现在MyListener.java:111行