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]]
发送时间: 2017年1月22日 9:09
收件人: [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.GridNearA
tomicSingleUpdateFuture | 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