Hazelcast(JVM)内存设置



我已经安装了一个由3个榛子cast节点组成的集群。每个hazelcast节点都安装在一个专用的VM中(使用centos 7运行(。每个虚拟机都有16GB的RAM和15GB的HDD。对于每个hazelcast节点,我在start.sh脚本中将堆内存大小设置为MIN heap size=8G和MAX heap size=10G。

然而,当我监视虚拟机上的内存使用情况时,它与hazelcast的堆内存使用情况根本不匹配。让我举一个例子:VM显示了80%的存储器使用率。然而,当我检查hazelcast堆内存使用率时,它是45%。就好像虚拟机内存使用率是在榛子cast的更高内存使用率之后。那么当GC在hazelcost中启动时,hazelcoast上的堆内存使用量减少,但VM内存使用量从未减少。在虚拟机中,我还禁用了THP,并将swappiness设置为10,如性能调优文档performance tuning(hazecast.com(中所述

那么,我应该为榛子铸件做一个缺失的配置吗?我能/应该做什么?

这就像虚拟机内存使用率遵循榛子cast的更高内存使用率。那么当GC在hazelcost中启动时,hazelcoast上的堆内存使用量减少,但VM内存使用量从未减少。

这是任何JVM应用程序的典型行为,它并不特定于Hazelcast。默认情况下,JVM很少将内存返回给操作系统,但可以通过这种方式进行配置。

有关特定JVM行为的更多详细信息,请参见本答案。

您说您正在为Hazelcast使用专用VM。在这种情况下,将内存返回到操作系统是没有意义的,最好使用相同的MIN和MAX堆大小,这样在运行Hazelcast时就不会调整堆大小。

最新更新