由于EHCache导致的内存泄漏问题

时间:2013-11-21 10:34:08

标签: java memory-leaks ehcache

由于以下配置的EhCache,我的性能环境中存在内存泄漏问题:

<cache name="mycache"
            maxElementsInMemory="50000"
            eternal="false"
            timeToIdleSeconds="300"
            timeToLiveSeconds="0"
            overflowToDisk="false"
            diskPersistent="false"
            memoryStoreEvictionPolicy="LRU"
            />                

我接受了堆转储并尝试使用IBM Heap Analyzer分析泄漏原因。 IBM Heap分析器怀疑内存泄漏,信息如下:

Leak suspect:   576,690,536 bytes (83.16 %) of Java heap is used by 128 instances of net/sf/ehcache/store/chm/SelectableConcurrentHashMap$Segment
Contains an instance) of the leak suspect: - org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean holding 117,109,616 bytes at 0x1b6fb410

Total size: 576,690,536 bytes

Size:   528 bytes

我的对象(存储在ehcache中)大小为88字节。

有了这些信息,我无法理解在这种情况下可能导致内存泄漏的原因。

我的对象是否未从缓存中刷新/删除? 我的ehcache配置中有什么奇怪的东西吗? 如果没有从缓存中删除对象,可能是什么原因?

任何想法?

1 个答案:

答案 0 :(得分:0)

设置timeToLiveSeconds = <no of seconds>。应该大于0。