EDIT - JVisualVMのキャッシュ#15とメモリストア#9を見ました。クエリキャッシュであることが分かります。うまくいけば、我々は、Tomcatの6倍に配備のGrailsアプリケーション(V1.2.0)を持っているメモリ問題の分析
...未満10K項目(デフォルト)にクエリキャッシュを制限confの中にキャッシュ構成は、この問題を解決しますドロップします。 OOMクラッシュを経験しました。ヒープダンプを取得し、JVisualVMで解析を開始しました。これは私が
この
にehcacheのもののように多く、バイトと文字配列の間違いをたくさん見ていものです。私は 'grails memory leak ehcache'の周りをグーグルで試してみましたが、決定的なものは何も出てこません。誰かがこのような問題を見たか、これを引き起こしている可能性について何か洞察を持っていますか?これは誤った設定のehcacheですか?
私たちは様々なプラグイン(acegi、quartz、mail、background-thread)を使用しています。すべての最新バージョンはgrailsバージョン1.2.0です。
EDIT - いくつかの詳細情報
次
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xms1024m -Xmx2048m -XX:MaxPermSize=256m -d64 -server -XX:+HeapDumpOnOutOfMemoryError -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseConcMarkSweepGC
でTomcatを起動し、エラーが
java.lang.OutOfMemoryError: Java heap space
興味深いことに、我々はパーマ世代スペース関連のエラーを取得するために使用されるが、上に示したJavaの設定に更新したところ、permgenのスペースエラーはなくなりました。
ヒープとPermGenにどれだけのメモリを与えていますか? – Davidann
EHCacheモニタを接続しましたか?その多くのメモリはEHCacheの設定ミスに関係していると考えられます。あまりにも多くを格納する可能性がある特定のキャッシュがあるかどうかを見てください。おそらく、要素の最大数を設定し、キャッシュの要素に対してTTLを設定します。 – Sean
@sean GORMマッピングではキャッシュを使用しますが、集中型ehcache設定はありません。多分それはそれです。デフォルトのTTLは永遠でしょうか?オブジェクトを何度もキャッシュしておくだけですか? – hvgotcodes