最近私たちのアプリケーションの1つでメモリリークの問題が発生しています。
開発環境:Lucene2.4.0、search3.2.0を休止状態、3.5.0を休止状態、spring2.5とehcacheを1.4.1
問題は、旧世代のメモリが徐々に時間帯に上がるということです。結局のところ、jvm statsから古い世代の容量が最大に達すると、JVMはメモリ不足になります。その結果、すべてのメモリを解放するためにWebを再起動する必要があります。
私はappからヒープダンプを生成し、メモリアナライザを使用して確認しました。私はこれを参照してください:
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>"
私はいくつかのアドバイスをお願いできますか?
おかげ
価値。 http://lucene.apache.org/java/docs/mailinglists.html – Joel
Linuxを使用している場合は、 'jmap -histo:live'コマンドを実行して、どのオブジェクトがRAMを増やしているかを確認してくださいそれは高い。 ConcurrentHashMapなどを含む他の多くのオブジェクトを含むオブジェクトをインスタンス化している可能性があります。 –
メモリ問題が発生しているので、私はすでにlucene 3.1に移動していますが、HibernateSearchを使用してメモリの不具合が判明しています –