2014-12-18 8 views
6

Sto usando fuso nocciolo in un cluster 2 nodi che segue è la mia configurazione:Hazelcast registrazione il 70% la soglia del messaggio con fuori aggiungere nulla per mappare

<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> 

sto solo usando la mappa per controllare la partizione, in modo che posso eseguire una sola istanza di lotti in un cluster:

hz.getPartitionService().getPartition("cluster.map").getOwner().localMember() 

Ma il tempo e di nuovo nel registro vedo messaggi come

[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, 

Non so cosa stia riempiendo la memoria del cluster di nocciolo.

Qualsiasi dvice sarà molto apprezzato.

Sto usando la versione 3.1.7 Hazelcasr

risposta

1

Si prega di aggiornare alla versione più recente di Hazelcast; 3.3.x. In 3.1/3.2 c'erano alcuni problemi che potevano portare a una perdita di memoria; forse stai incontrando uno di questi problemi.

Non so cosa stia consumando la memoria. Di solito prendo un heapdump e lo analizzo. Ma prima prova ad aggiornare.

+0

Ho provato ad utilizzare 3.3.3 ma ho ancora ottenere quel messaggio, dopo 24 ore, come nella configurazione 2 nodi. Sta diventando sempre più difficile ottenere il dump della memoria perché lo sgombero si sta riprendendo e sta tornando normale. Non sei sicuro di cosa stia riempiendo la memoria nocciola – remo

+0

Il monitor della salute entra in azione solo quando viene utilizzato il 70% della memoria; potrebbe benissimo essere che non ci siano problemi perché il GC ha appena rimosso gli oggetti morti quando ne sente la necessità. Il monitor della salute che ho aggiunto perché spesso ci siamo imbattuti in problemi dei clienti senza avere un solo indizio su cosa sta succedendo; ora abbiamo un po 'di feedback. Ma a volte ottieni falsi positivi e se non riscontri problemi; potrebbe essere che questo è uno di loro. – pveentjer

+0

Posso ripristinare la soglia più alta, ad es. fino al 90% della memoria utilizzata? – rustyx

5

Basta spegnere il filo HealthMonitor facendo passare la proprietà di configurazione hazelcast.health.monitoring.level=OFF

com.hazelcast.internal.monitors.HealthMonitor contiene un riferimento difficile com.hazelcast.spi.impl.proxyservice.impl.ProxyServiceImpl provocando un 'Maple' proxy 'da essere raccolti e alla fine permettendogli di crescere senza limiti.

Hazelcast Memory leak