简体   繁体   English

Hazelcast内存不足问题

[英]Hazelcast Out of memory issue

Frequent out of memory issue in Hazelcast 3.3 , What I wonder is node has enough memory and CPU, 16GB Ram, 8 Core processor, still this error is happening. Hazelcast 3.3中经常出现内存不足的问题,我想知道节点有足够的内存和CPU,16GB Ram,8核处理器,仍然发生此错误。 Its a single node setup. 它是一个单节点设置。

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)

For Every new run, this happens after (around) 15 mins of run. 对于“每次新运行”,都会在(大约)运行15分钟后发生。

After this, continuously We are getting the following error, 此后,我们不断收到以下错误,

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)

Please, If there any configuration set up I need to add??? 请,如果有任何配置设置,我需要添加???

For INFO : 对于信息

There is no eviction policy added, Its default as NONE. 没有添加驱逐策略 ,其默认值为NONE。 Am using the MAP STORE for persistence policy with write delay as 1 second. 我正在将MAP STORE用于持久性策略,并将写入延迟设为1秒。

Since you don't have a support contract, this is a best value answer. 由于您没有支持合同,因此这是最有价值的答案。

  1. You have a single node setup, as wrong as a single node cluster sounds, as wrong it is to run Hazelcast that way. 您有一个单节点设置,就像一个单节点群集听起来那样错误,以这种方式运行Hazelcast是错误的。 Hazelcast is not designed for single member clusters (and it doesn't make sense either). Hazelcast不是为单成员群集设计的(也没有任何意义)。

  2. The amount of heap is set to 16GB. 堆数量设置为16GB。 What is your expected data value? 您的预期数据值是多少? I mean you cannot store 16GB of data in 16GB heap. 我的意思是您无法在16GB的堆中存储16GB的数据。

  3. Have you tried to get a heap-dump when your JVM ran OOME? 当JVM运行OOME时,您是否尝试过进行堆转储? Have you looked into it to see what is eating up your memory? 您是否看过它,看看是什么在吞噬您的记忆? (as mentioned look for "how to find memory leaks") (如前所述,寻找“如何查找内存泄漏”)

  4. If you have no eviction selected, you won't get eviction, even with a MapStore. 如果您没有选择驱逐,即使使用MapStore也不会驱逐。

  5. Have you tried different GC combinations or tried to look at the GC at all? 您是否尝试过使用不同的GC组合或完全尝试查看GC? There are different kinds of GC errors. GC错误有多种。

  6. It seems like your client is running OOME so maybe the problem is not the amount of data at all. 看来您的客户端正在运行OOME,所以问题可能根本就不是数据量。 But since there is no further information, it is hard to reason. 但是,由于没有进一步的信息,因此很难推理。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM