轻松排查Java 占用CPU 100%的原因!!!
最近项目部署后发现服务器好慢 - -
打开看了一下后台监控,不看不知道啊 - - CPU资源被JAVA 进程 占了近 100%了!
搞他!
(所有命令我已标红,文章中出现的PID 如:5286 5559 都是作者自己的哦,使用时要替换为你自己的!!!)
使用 top 命令查看cpu使用情况 - -
Java占用了这么多CPU资源 = = PID是 5286
使用命令导出相关日志
使用 jstack -l 5286 > ./5286.stack 5286是你的PID
往下查看具体线程
使用 top -Hp 5286 命令查看具体线程
原来是 PID 为5559的线程 - -
要想定位具体代码的话 要把 5559 转为16进制 = 15b7
下面根据日志定位具体代码
使用命令 grep '15b7' -C 20 5286.stack 定位日志
最后发现问题出现在MyListener.java:111行