4

我有一个在三个 tomcat 服务器上运行的生产系统。突然,我的一个 tomcat 服务器显示 100% 的 CPU 使用率,这是我从池中取出的。

任何人都可以指导我如何开始调试这个问题?任何工具/实用程序?

谢谢, 哈里什

4

2 回答 2

2

我要尝试的第一件事是获取线程转储并查看正在运行的内容。

这篇文章

生成 Java 线程转储 线程转储是通过向 JVM 进程发送 SIGQUIT 信号来生成的。有多种方法可以将此信号发送到进程。

在 Unix 中,使用“kill -3”,其中 pid 是 JVM 的进程 ID。

在 Windows 中,在运行 JVM 的窗口上按 CTRL+BREAK

这至少会向您显示应用程序中的哪些线程正在运行,并为您提供有关正在发生的事情的基本指示。jstack将提供另一种获取此信息的方法,并且对于与控制台断开连接的服务器进程可能更容易。

使用VisualVM报告线程/CPU + 内存使用情况可以获得更详细的报告。

于 2012-06-19T14:54:12.357 回答
1

看看JTop,它就像 unix top,但用于 JVM 中的线程。

于 2012-06-20T09:22:06.697 回答