【发布时间】:2016-03-29 08:32:20
【问题描述】:
我们的产品在我们客户的服务器上运行,在 Windows 上只有一个 JRE(无 JDK)。
我知道我可以通过一个标志在 OutOfMemoryError 上获得堆转储。
但是,有没有办法主动从 JRE JVM 进程中获取堆转储?
我正计划获取一些健康的堆转储,并将它们与在 OutOfMemoryError 上获得的堆转储进行比较。
最好我应该可以让客户下载这个工具/实用程序,然后在服务器上运行它来随意获取堆转储。
我尝试了jvisualvm,但是 jvisualvm 不会列出我们的产品 jVM。它只会列出当时运行的一些 JVM,而不是当时运行的所有 JVM。加上 jvisualvm 非常笨重。
P.S:是否有可以在 JVM 主机上执行以转储堆的 3rd 方实用程序?此外,客户此时无法升级 JRE。并且上一个问题的答案都没有被选为答案!
谢谢,
【问题讨论】:
-
我看到了这个问题。鉴于该问题是 2 年前提出的,我正在寻找是否有实用程序等可以完成任务。
标签: java jvm heap-dump heap-profiling