我正在运行Apache Ignite应用程序。当我看到使用linux free
的内存使用情况时,我将内存用作9.8 GB。但是当我使用 eclipse MAT 进行堆转储时,它的大小只有大约1.8 GB。为什么会这样?在ignite中分配的默认堆内存为21 GB。我还没有做任何GC调整。
答案 0 :(得分:1)
当Eclipse进行堆转储时,它很可能强制进行完全垃圾回收,这样您才能看到实际在内存中的对象。 JVM本身不会这样做,因为堆非常大并且仍有大量可用内存。顺便说一句,这将最终使您的Ignite节点在相当长的一段时间内无响应。我建议不要为每个节点分配超过10-12GB的空间。