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