rem*_*emo 6 java caching cluster-computing hazelcast
我在2节点集群中使用hazel cast以下是我的配置:
<hz:hazelcast id="hazelcast_instance">
<hz:config>
<hz:instance-name>hazelcastinstance</hz:instance-name>
<hz:group name="cluster" password="asdfg" />
<hz:properties>
<hz:property name="hazelcast.health.monitoring.level">SILENT</hz:property>
</hz:properties>
<hz:network port="5710" port-auto-increment="false">
<hz:join>
<hz:multicast enabled="false" multicast-group="224.2.2.5"
multicast-port="54327" />
<hz:tcp-ip enabled="true">
<hz:members>${cluster.hzmembers}</hz:members>
</hz:tcp-ip>
</hz:join>
<hz:interfaces enabled="false">
<hz:interface>192.168.1.*</hz:interface>
</hz:interfaces>
</hz:network>
<hz:map name="cluster.map" max-size="100" max-idle-seconds="55"
time-to-live-seconds="55" eviction-policy="LRU" eviction-percentage="50"/>
</hz:config>
</hz:hazelcast>
Run Code Online (Sandbox Code Playgroud)
我只是使用地图来检查分区,这样我就可以在集群中只运行一个批处理实例:
hz.getPartitionService().getPartition("cluster.map").getOwner().localMember()
Run Code Online (Sandbox Code Playgroud)
但是在日志中我一次又一次地看到消息
[cluster] memory.used=1.8G, memory.free=583.9M, memory.total=2.4G, memory.max=2.4G, memory.used/total=76.07%, memory.used/max=76.07%, load.process=-1.00%, load.system=-1.00%, load.systemAverage=13.00%, thread.count=147, thread.peakCount=158, event.q.size=0, executor.q.async.size=0, executor.q.client.size=0, executor.q.operation.size=0, executor.q.query.size=0, executor.q.scheduled.size=0,
Run Code Online (Sandbox Code Playgroud)
不确定是什么填满了hazelcast集群内存.
任何设备将受到高度赞赏.
我正在使用Hazelcasr版本3.1.7
只需通过传递配置属性即可关闭healthmonitor线程 hazelcast.health.monitoring.level=OFF
com.hazelcast.internal.monitors.HealthMonitor拥有对com.hazelcast.spi.impl.proxyservice.impl.ProxyServiceImpl的硬引用,从而导致收集'appxies'Map对象并最终允许它超出边界.
请升级到Hazelcast最新版本;3.3.x。在 3.1/3.2 中,存在一些可能导致内存泄漏的问题;也许您正在遇到这些问题之一。
我不知道是什么消耗了你的记忆。我通常会获取堆转储并对其进行分析。但首先尝试升级。