一、CPU100%问题
查找进程
当发现CPU过高之后,首先我们要找出哪个进程占用了CPU。我们可以使用top命令
top -c
在显示模式下,然后我们可以通过切换到大写,不断的按大写P就能进行排序,找到最大的CPU看看上哪个进程。
查找线程
我们已经找到了哪个进程最消耗CPU了,接下来,我们当然要找到该进程下,哪个线程CPU消耗最高咯。这里的进程PID是7,使用命令
top -Hp 7
到此我们已经定位到线程了,接下来我们就该用上jvm的命令工具了。
然后我们使用jstack命令,拉到7进程快照信息,输出到文件中,方便我们查看。
jstack -l 7> ./7.stack
此处需要将pid转换为16进制
cat 7.stack | grep '7' -C 20
至此我们就已经找到了问题代码在哪了。 调用链查一查就可以了。