【发布时间】:2015-03-04 12:38:49
【问题描述】:
我想对我的 java - Jmeter 机器进行线程转储。在我的 Jmeter 机器中,我可以看到许多线程在测试计时后没有关闭和卡住。为了调试更多,我尝试进行线程转储(使用“jstack -PID>>Fileae.txt”命令)。但是此命令在 24 小时后仍在运行,尽管这创建了一个空文本文件。 为什么我无法获取该 java 进程的线程转储。
【问题讨论】:
标签: jstack
我想对我的 java - Jmeter 机器进行线程转储。在我的 Jmeter 机器中,我可以看到许多线程在测试计时后没有关闭和卡住。为了调试更多,我尝试进行线程转储(使用“jstack -PID>>Fileae.txt”命令)。但是此命令在 24 小时后仍在运行,尽管这创建了一个空文本文件。 为什么我无法获取该 java 进程的线程转储。
【问题讨论】:
标签: jstack
试试这个 -
‘jstack’是一个捕获线程转储的有效命令行工具。 jstack 工具包含在 JDK_HOMEbin 文件夹中。这是捕获线程转储所需发出的命令:
jstack -l >
在哪里
pid:是应用程序的进程ID,应该捕获其线程转储
file-path:是写入线程转储的文件路径。 示例:
jstack -l 37320 > /opt/tmp/threadDump.txt 根据示例,进程的线程转储将在 /opt/tmp/threadDump.txt 文件中生成。
Jstack 工具自 Java 5 起包含在 JDK 中。如果您在旧版本的 java 中运行,请考虑使用其他选项。
【讨论】: