Jvm 在生产系统上生成线程转储的安全性
我们有一个生产Java系统,它使用的线程比平常多得多。我想使用Jvm 在生产系统上生成线程转储的安全性,jvm,Jvm,我们有一个生产Java系统,它使用的线程比平常多得多。我想使用kill-3pid获得一个线程转储,如果需要的话,还可以使用JConsole获得一个二进制堆转储,以便在EclipseMat中进行脱机分析 我正在RHEL4上运行Java1.5.0_10 这两者中的任何一个会杀死JVM的可能性有多大?产生转储时对其性能的不利影响如何?它不会杀死VM,但生成堆转储可能会在转储过程中冻结JVM,因为它必须转储一致的快照。一旦转储完成,它将从暂停的位置恢复所有线程。所以它不会造成破坏,但会短暂停止处理。我使
kill-3pid
获得一个线程转储,如果需要的话,还可以使用JConsole获得一个二进制堆转储,以便在EclipseMat中进行脱机分析
我正在RHEL4上运行Java1.5.0_10
这两者中的任何一个会杀死JVM的可能性有多大?产生转储时对其性能的不利影响如何?它不会杀死VM,但生成堆转储可能会在转储过程中冻结JVM,因为它必须转储一致的快照。一旦转储完成,它将从暂停的位置恢复所有线程。所以它不会造成破坏,但会短暂停止处理。我使用下面的命令获取堆转储 jmap-堆pid
详细信息-我假设线程转储比堆转储成本低很多。它甚至需要暂停虚拟机吗?@Rich:是的,要便宜得多。它仍然需要暂停虚拟机,但所花的时间很短,你不会注意到。对不起,这并不能回答问题