Jvm 在生产系统上生成线程转储的安全性

Jvm 在生产系统上生成线程转储的安全性,jvm,Jvm,我们有一个生产Java系统,它使用的线程比平常多得多。我想使用kill-3pid获得一个线程转储,如果需要的话,还可以使用JConsole获得一个二进制堆转储,以便在EclipseMat中进行脱机分析 我正在RHEL4上运行Java1.5.0_10 这两者中的任何一个会杀死JVM的可能性有多大?产生转储时对其性能的不利影响如何?它不会杀死VM,但生成堆转储可能会在转储过程中冻结JVM,因为它必须转储一致的快照。一旦转储完成,它将从暂停的位置恢复所有线程。所以它不会造成破坏,但会短暂停止处理。我使

我们有一个生产Java系统,它使用的线程比平常多得多。我想使用
kill-3pid
获得一个线程转储,如果需要的话,还可以使用JConsole获得一个二进制堆转储,以便在EclipseMat中进行脱机分析

我正在RHEL4上运行Java1.5.0_10


这两者中的任何一个会杀死JVM的可能性有多大?产生转储时对其性能的不利影响如何?

它不会杀死VM,但生成堆转储可能会在转储过程中冻结JVM,因为它必须转储一致的快照。一旦转储完成,它将从暂停的位置恢复所有线程。所以它不会造成破坏,但会短暂停止处理。

我使用下面的命令获取堆转储

jmap-堆pid


详细信息-

我假设线程转储比堆转储成本低很多。它甚至需要暂停虚拟机吗?@Rich:是的,要便宜得多。它仍然需要暂停虚拟机,但所花的时间很短,你不会注意到。对不起,这并不能回答问题