应用程序使用的内存大于实际堆转储大小

时间:2016-12-01 08:59:43

标签: java memory ignite gridgain

我正在运行Apache Ignite应用程序。当我看到使用linux free的内存使用情况时,我将内存用作9.8 GB。但是当我使用 eclipse MAT 进行堆转储时,它的大小只有大约1.8 GB。为什么会这样?在ignite中分配的默认堆内存为21 GB。我还没有做任何GC调整。

1 个答案:

答案 0 :(得分:1)

当Eclipse进行堆转储时,它很可能强制进行完全垃圾回收,这样您才能看到实际在内存中的对象。 JVM本身不会这样做,因为堆非常大并且仍有大量可用内存。顺便说一句,这将最终使您的Ignite节点在相当长的一段时间内无响应。我建议不要为每个节点分配超过10-12GB的空间。