2016-06-07 51 views
0

在weblogic JRockit中,有时堆满(使用量达到堆最大大小4096M)。但是,我们转储堆后,转储文件的大小只有200〜300M。这很奇怪,除此之外,我们无法确定哪些对象通过EMA工具占据了堆。关于weblogic JRockit的堆转储,堆使用情况已完全消耗,但堆转储量较小

有没有人遇到类似的问题,并且有人知道JRockit堆转储机制?

+0

这是jrockit的正常行为。完整的gc在创建堆转储之前执行。如果怀疑存在内存泄漏,请在负载测试期间进行多次堆转储,并使用适当的工具(如Eclipse MAT)对其进行分析。 –

+0

谢谢Emmanuel分享。问题已经确定,并与JRockit有关。您可以参考Oracle博客[https://blogs.oracle.com/buck/entry/where_did_all_of_these](https://blogs.oracle.com/buck/entry/where_did_all_of_these) – zhengel

回答

0

每当你采取堆转储完整的GC将运行,然后堆将被倾倒。可能是你的堆转储大小非常小的原因。

如果您想分析完整GC之间的内存泄漏,那么使用Java分析器(Mission Control,jProfiler等)进行内存分析可能是您唯一的选择。