生产服务器中的Tomcat(8.0.14-1 + deb8u1)突然占用了所有CPU,如何诊断原因?我知道分析器可能会派上用场,但在生产环境中不会有任何想法吗?
附加信息:“顶部”命令执行/ lsb_release
@Gonzalo我已经看到您提供了几乎所有必要的信息,但是我将从“开始”中写下我的答案,因此它对于那些偶然发现它的经验不足的用户可能会有所帮助。
您应该进行线程转储。您可以通过以下任一方法来做到这一点:
看一下top
或htop
命令输出。
top
按“ shift + h”以显示线程(您也可以从头开始top -p PID
以过滤不相关的进程)打开线程转储并查找它的十六进制线程。这是消耗CPU的线程
PS:您的线程转储看起来真的很奇怪,并且错过了线程ID。线程堆栈应该像这样开始:
"Finalizer" daemon prio=8 tid=0x02b3d000 nid=0x898 in Object.wait() [0x02d0f000]
...stack traces here...
其中nid
是从top / htop找到的线程ID十六进制。
尝试与转储 kill -3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句