JRockit完全内存转储

时间:2014-11-24 14:52:26

标签: java jdk1.5 jrockit

我怀疑我的应用程序有内存泄漏。我有GC日志,当我看到它们时,我发现内存使用量约为9-10GB。然后我尝试将内存转储到文件中,文件大小约为5GB。

问题是为什么dump没有9GB大小,但只有5GB?如何强制jrcmd转储完整内存?

我使用的命令:

jrcmd 11906 hprofdump filename=/path_to_dump/dump.hprof

JVM:

Java(TM) Platform, Standard Edition for Business (build 1.5.0_28-b04)
Oracle JRockit(R) (build R28.1.3-11-141760-1.5.0_28-20110301-1432-linux-x86_64, compiled mode)

更新

问题在于,由于GC日志,内存永远不会释放到低于9GB的级别。 JDK工具截断转储为5GB。为什么呢?

2 个答案:

答案 0 :(得分:0)

我假设JRockit的行为类似于HotSpot:如果你的实时数据集只有5 GB,那么转储也只有5 GB。我假设你的9-10只有5 GB是活的。

答案 1 :(得分:0)

您的GC日志是什么样的?

顺便说一句,您是否尝试过名为Memleak的JRockit Mission Control工具?它可用于查找内存泄漏。