Lucene hibernate搜索中的内存泄漏

Lucene hibernate搜索中的内存泄漏,lucene,ehcache,hibernate-search,Lucene,Ehcache,Hibernate Search,问候, 最近我们的一个应用程序面临内存泄漏问题 开发环境:Lucene2.4.0、HibernateSearch3.2.0、Hibernate3.5.0、spring2.5和Ehcache1.4.1 问题是老一代人的记忆力在一段时间内逐渐提高。最终,JVM耗尽了内存,正如我们从JVM统计数据中看到的,旧一代的容量达到了最大值。因此,我必须重新启动web以释放所有内存 我从应用程序生成了一个堆转储,并使用内存分析器进行检查。我看到: 123,726 instances of "org.apache

问候,

最近我们的一个应用程序面临内存泄漏问题

开发环境:Lucene2.4.0、HibernateSearch3.2.0、Hibernate3.5.0、spring2.5和Ehcache1.4.1

问题是老一代人的记忆力在一段时间内逐渐提高。最终,JVM耗尽了内存,正如我们从JVM统计数据中看到的,旧一代的容量达到了最大值。因此,我必须重新启动web以释放所有内存

我从应用程序生成了一个堆转储,并使用内存分析器进行检查。我看到:

123,726 instances of "org.apache.lucene.index.TermInfosReader$ThreadResources", loaded by "org.apache.catalina.loader.WebappClassLoader @ 0x7f5d71ffe3c8" occupy 3,139,449,272 (79.54%) bytes. These instances are referenced from one instance of "java.util.concurrent.ConcurrentHashMap$Segment[]", loaded by "<system class loader>"
123726由“org.apache.catalina.loader.WebappClassLoader@0x7f5d71ffe3c8”加载的“org.apache.lucene.index.TermInfosReader$ThreadResources”实例占用3139449272(79.54%)字节。这些实例引用自“java.util.concurrent.ConcurrentHashMap$Segment[]”的一个实例,该实例由“”加载
你能给我一些建议吗


感谢

如果您还没有将此信息发布到Lucene用户邮件列表中,也值得一提。如果您使用的是linux,请尝试使用命令
jmap-histo:live
来检查哪些对象正在使RAM增长那么高。也许你可以实例化一个包含许多其他包含ConcurrentHashMap等的对象。如果有帮助的话,我已经转到lucene 3.1了,因为我有内存问题,并且使用HibernateSearch时存在已知的内存错误