[英]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秒。
由於您沒有支持合同,因此這是最有價值的答案。
您有一個單節點設置,就像一個單節點群集聽起來那樣錯誤,以這種方式運行Hazelcast是錯誤的。 Hazelcast不是為單成員群集設計的(也沒有任何意義)。
堆數量設置為16GB。 您的預期數據值是多少? 我的意思是您無法在16GB的堆中存儲16GB的數據。
當JVM運行OOME時,您是否嘗試過進行堆轉儲? 您是否看過它,看看是什么在吞噬您的記憶? (如前所述,尋找“如何查找內存泄漏”)
如果您沒有選擇驅逐,即使使用MapStore也不會驅逐。
您是否嘗試過使用不同的GC組合或完全嘗試查看GC? GC錯誤有多種。
看來您的客戶端正在運行OOME,所以問題可能根本就不是數據量。 但是,由於沒有進一步的信息,因此很難推理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.