3.4. 识别 Java 线程高 CPU 使用率
注意
对于在 Red Hat Enterprise Linux 或 Solaris 上使用 JBoss EAP 的客户,红帽客户门户网站上的 JVMPeg 实验室工具可帮助 收集和分析 Java 线程信息来识别高 CPU 使用率。按照 使用 JVMPeg 实验工具的说明,而不是使用以下步骤。
对于 OpenJDK 和 Oracle JDK 环境,可使用 jstack 工具提供 Java 线程诊断信息。
识别使用高 CPU 百分比的 Java 进程的进程 ID。
在高使用过程中获取每个线程 CPU 数据也很有用。这可以通过在 Red Hat Enterprise Linux 系统上使用
top -H命令来完成。使用
jstack实用程序,创建 Java 进程的堆栈转储。例如,在 Linux 和 Solaris 上:jstack -l JAVA_PROCESS_ID > high-cpu-tdump.out
jstack -l JAVA_PROCESS_ID > high-cpu-tdump.outCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可能需要创建多个转储,以便查看一段时间内的任何更改或趋势。
- 分析堆栈转储。您可以使用 Thread Dump Analyzer (TDA) 等工具。