簡體   English   中英

Hazelcast內存不足問題

[英]Hazelcast Out of memory issue

Hazelcast 3.3中經常出現內存不足的問題,我想知道節點有足夠的內存和CPU,16GB Ram,8核處理器,仍然發生此錯誤。 它是一個單節點設置。

com.hazelcast.core.HazelcastException: Client is shutting down!!!
    at com.hazelcast.client.connection.nio.ClientConnection.innerClose(ClientConnection.java:302)
    at com.hazelcast.client.connection.nio.ClientConnection.close(ClientConnection.java:355)
    at com.hazelcast.client.connection.nio.ClientConnection.close(ClientConnection.java:230)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl.shutdown(ClientConnectionManagerImpl.java:249)
    at com.hazelcast.client.ClientOutOfMemoryHandler$ClientHelper.closeSockets(ClientOutOfMemoryHandler.java:54)
    at com.hazelcast.client.ClientOutOfMemoryHandler$ClientHelper.cleanResources(ClientOutOfMemoryHandler.java:45)
    at com.hazelcast.client.ClientOutOfMemoryHandler.onOutOfMemory(ClientOutOfMemoryHandler.java:34)
    at com.hazelcast.instance.OutOfMemoryErrorDispatcher.onOutOfMemory(OutOfMemoryErrorDispatcher.java:143)
    at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.handleOperationError(BasicOperationService.java:827)
    at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.handle(BasicOperationService.java:703)
    at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.access$400(BasicOperationService.java:675)
    at com.hazelcast.spi.impl.BasicOperationService.runOperationOnCallingThread(BasicOperationService.java:229)
    at com.hazelcast.spi.impl.BasicInvocation.doInvokeLocal(BasicInvocation.java:286)
    at com.hazelcast.spi.impl.BasicInvocation.doInvoke(BasicInvocation.java:272)
    at com.hazelcast.spi.impl.BasicInvocation.invoke(BasicInvocation.java:232)
    at com.hazelcast.spi.impl.BasicInvocationBuilder.invoke(BasicInvocationBuilder.java:45)
    at com.hazelcast.client.impl.client.PartitionClientRequest.process(PartitionClientRequest.java:60)
    at com.hazelcast.client.impl.ClientEngineImpl$ClientPacketProcessor.processRequest(ClientEngineImpl.java:418)
    at com.hazelcast.client.impl.ClientEngineImpl$ClientPacketProcessor.run(ClientEngineImpl.java:357)
    at com.hazelcast.spi.impl.BasicOperationService$BasicDispatcherImpl.dispatch(BasicOperationService.java:546)
    at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.process(BasicOperationScheduler.java:439)
    at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.doRun(BasicOperationScheduler.java:433)
    at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.run(BasicOperationScheduler.java:408)
    at ------ End remote and begin local stack-trace ------.(Unknown Source)
    at com.hazelcast.client.spi.impl.ClientCallFuture.resolveResponse(ClientCallFuture.java:192)
    at com.hazelcast.client.spi.impl.ClientCallFuture.get(ClientCallFuture.java:134)
    at com.hazelcast.client.spi.impl.ClientCallFuture.get(ClientCallFuture.java:111)
    at com.hazelcast.client.spi.ClientProxy.invoke(ClientProxy.java:110)
    at com.hazelcast.client.proxy.ClientMapProxy.get(ClientMapProxy.java:180)

對於“每次新運行”,都會在(大約)運行15分鍾后發生。

此后,我們不斷收到以下錯誤,

java.util.concurrent.RejectedExecutionException: Internal executor rejected task: java.util.concurrent.FutureTask@5463e258, because client is shutting down...
    at com.hazelcast.client.spi.impl.ClientExecutionServiceImpl$1.rejectedExecution(ClientExecutionServiceImpl.java:60)
    at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821)
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1372)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)
    at com.hazelcast.client.spi.impl.ClientExecutionServiceImpl.submitInternal(ClientExecutionServiceImpl.java:81)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl.getOrConnect(ClientConnectionManagerImpl.java:339)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl.tryToConnect(ClientConnectionManagerImpl.java:280)
    at com.hazelcast.client.spi.impl.ClientInvocationServiceImpl.send(ClientInvocationServiceImpl.java:120)
    at com.hazelcast.client.spi.impl.ClientInvocationServiceImpl.invokeOnRandomTarget(ClientInvocationServiceImpl.java:61)
    at com.hazelcast.client.spi.ProxyManager.initialize(ProxyManager.java:197)
    at com.hazelcast.client.spi.ProxyManager.getOrCreateProxy(ProxyManager.java:180)
    at com.hazelcast.client.HazelcastClient.getDistributedObject(HazelcastClient.java:461)
    at com.hazelcast.client.HazelcastClient.getMap(HazelcastClient.java:314)
    at com.hazelcast.client.HazelcastClientProxy.getMap(HazelcastClientProxy.java:97)

請,如果有任何配置設置,我需要添加???

對於信息

沒有添加驅逐策略 ,其默認值為NONE。 我正在將MAP STORE用於持久性策略,並將寫入延遲設為1秒。

由於您沒有支持合同,因此這是最有價值的答案。

  1. 您有一個單節點設置,就像一個單節點群集聽起來那樣錯誤,以這種方式運行Hazelcast是錯誤的。 Hazelcast不是為單成員群集設計的(也沒有任何意義)。

  2. 堆數量設置為16GB。 您的預期數據值是多少? 我的意思是您無法在16GB的堆中存儲16GB的數據。

  3. 當JVM運行OOME時,您是否嘗試過進行堆轉儲? 您是否看過它,看看是什么在吞噬您的記憶? (如前所述,尋找“如何查找內存泄漏”)

  4. 如果您沒有選擇驅逐,即使使用MapStore也不會驅逐。

  5. 您是否嘗試過使用不同的GC組合或完全嘗試查看GC? GC錯誤有多種。

  6. 看來您的客戶端正在運行OOME,所以問題可能根本就不是數據量。 但是,由於沒有進一步的信息,因此很難推理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM