gpt4 book ai didi

performance - Tomcat 尖峰并消耗所有可用的 CPU

转载 作者:行者123 更新时间:2023-11-28 22:52:35 24 4
gpt4 key购买 nike

生产服务器中的Tomcat (8.0.14-1+deb8u1) 突然霸占所有CPU,如何诊断原因?我知道探查器可能会派上用场,但在生产环境中没有用,有什么想法吗?

附加信息: "top" command execution/lsb_release

最佳答案

@Gonzalo 我看到您已经提供了几乎所有必要的信息,但我会从“开头”写下我的回答,这样对于偶然发现它的经验不足的用户会有所帮助。

  1. 你应该做一个线程转储。您可以通过以下任一方式做到这一点:

    • kill -3 PID
    • jstack -F PID
  2. 查看 tophtop 命令输出。

    • 对于 top 按“shift + h”显示线程(您也可以使用 top -p PID 启动 top 以过滤掉不相关的进程)
    • 找出哪个线程消耗了 CPU 并记下线程 ID
    • 线程ID是十进制的,所以你必须把它转换成十六进制。
  3. 打开线程转储并查找十六进制线程。这是消耗CPU的线程

PS:您的线程转储看起来很奇怪,并且缺少线程 ID。线程堆栈应该像这样开始:

"Finalizer" daemon prio=8 tid=0x02b3d000 nid=0x898 in Object.wait() [0x02d0f000]
...stack traces here...

其中 nid 是您从 top/htop 中找到的十六进制线程 ID。

尝试使用 kill -3 进行转储

关于performance - Tomcat 尖峰并消耗所有可用的 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35751159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com