Hi,
My application run overnight and crash again after I set max heap as 2G. For I saw there were many Future Objects, I guess it may be caused by Async API. Now I am using Sync API. It seems that the memory issue disappeared. My application memory kept at 60M. cache = cache.withAsync().withKeepBinary(); --> cache = cache.withKeepBinary(); I think this will not happens always, but real happened on some condition and worthy further investigate. Thanks Shawn 发件人: Shawn Du [mailto:[email protected]] 发送时间: 2017年1月22日 17:36 收件人: [email protected] 主题: RE: ignite client memory issue Hi, I am sure there are memory leaks. See below. Class Name | Objects | Shallow Heap | Retained Heap --------------------------------------------------------------------------------------------------------------------------------------------- java.lang.Thread | 128 | 15,360 | >= 879,574,832 java.lang.ThreadLocal$ThreadLocalMap | 100 | 2,400 | >= 870,478,984 java.lang.ThreadLocal$ThreadLocalMap$Entry[] | 100 | 271,168 | >= 870,476,576 java.lang.ThreadLocal$ThreadLocalMap$Entry | 23,153 | 740,896 | >= 868,443,568 org.apache.ignite.internal.processors.cache.IgniteCacheFutureImpl | 22,444 | 359,104 | >= 867,056,800 org.apache.ignite.internal.util.future.GridFutureAdapter$ChainFuture | 22,444 | 1,436,416 | >= 866,697,704 byte[] | 26,362 | 864,837,368 | >= 864,837,368 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture| 22,441 | 3,411,032 | >= 861,188,352 org.apache.ignite.internal.binary.BinaryObjectImpl | 22,441 | 897,640 | >= 855,099,616 --------------------------------------------------------------------------------------------------------------------------------------------- Now my application is still running, and the memory is growing up. Please help. More information: Ignite version: 1.8.0 java version "1.8.0_77" Java(TM) SE Runtime Environment (build 1.8.0_77-b03) Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode) Platform: Linux dev-s2 4.4.8-20.46.amzn1.x86_64 #1 SMP Wed Apr 27 19:28:52 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux This is a new issue in my application. Recently we change our code. Add below Class which implement public class Column<T> implements Binarylizable { } Thanks. Please help. Shawn 发件人: Shawn Du [mailto:[email protected]] 发送时间: 2017年1月22日 13:52 收件人: [email protected] <mailto:[email protected]> 主题: Re: ignite client memory issue Hi, I assume this document for ignite server. In my case, I set ignite work at client mode. Now I increase the Max Heap Size and my application is running, I will monitor the memory usage. For my view, at client mode, ignite should not use too much memory. Thanks Shawn 发件人: Denis Magda [mailto:[email protected]] 发送时间: 2017年1月22日 13:38 收件人: [email protected] <mailto:[email protected]> 主题: Re: ignite client memory issue Also keep in mind that every Ignite node requires at least ~ 300 MB for its internal purposes. This capacity planning page might be useful as well for you: https://apacheignite.readme.io/docs/capacity-planning-bak — Denis On Jan 21, 2017, at 9:29 PM, Shawn Du <[email protected] <mailto:[email protected]> > wrote: My heap max size is 768M. more than 500M are consumed by ignite. Your advice is quite reasonable. I will refactor my code. Thanks 发件人: Denis Magda [mailto:[email protected]] 发送时间: 2017年1月22日 13:18 收件人: [email protected] <mailto:[email protected]> 主题: Re: ignite client memory issue Hi Shawn, What is the maximum size of the heap? I don’t think the cache configurations can be a reason of the OOM. As a side note, there is no reason to keep the configurations at all. Once a cache is started with a configuration you can either keep a single reference to it and reuse by multiple app threads or get a new one by passing the cache name into a respective Ignite method. — Denis On Jan 21, 2017, at 9:03 PM, Shawn Du < <mailto:[email protected]> [email protected]> wrote: I review the code, find a never released HashMap which store some cache configurations. private Map<TableSchema, CacheConfiguration<String, BinaryObject>> cacheConfigurations = new HashMap<>(); I cache these configurations for performance consideration. I get ignite cache by calling: IgniteCache<String, BinaryObject> cache = IgniteManager.getIgnite().getOrCreateCache(configuration); My question: If cache configuration doesn’t release, it will prevent some memeory/cache entries/something else release? Thanks Shawn 发件人: Shawn Du [ <mailto:[email protected]> mailto:[email protected]] 发送时间: 2017年1月22日 9:09 收件人: <mailto:[email protected]> [email protected] 主题: ignite client memory issue Hi, My ignite client died many times recently because of OOM. Of course, I can increase the Max heap size. But I want to know why these memory are not released. This is part of analysis of Eclipse Memory Analyzer. My ignite client use Async cache API. please help. Class Name | Objects | Shallow Heap | Retained Heap ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- java.lang.Thread | 109 | 13,080 | >= 561,086,296 java.lang.ThreadLocal$ThreadLocalMap | 98 | 2,352 | >= 537,825,592 java.lang.ThreadLocal$ThreadLocalMap$Entry[] | 98 | 139,808 | >= 537,823,232 java.lang.ThreadLocal$ThreadLocalMap$Entry | 15,202 | 486,464 | >= 535,750,616 org.apache.ignite.internal.processors.cache.IgniteCacheFutureImpl | 14,476 | 231,616 | >= 534,866,208 org.apache.ignite.internal.util.future.GridFutureAdapter$ChainFuture | 14,476 | 926,464 | >= 534,634,600 org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture | 14,466 | 2,198,832 | >= 531,444,584 byte[] | 18,438 | 530,369,360 | >= 530,369,360 org.apache.ignite.internal.binary.BinaryObjectImpl | 14,466 | 578,640 | >= 527,749,368 Thanks Shawn
