Java 6、Tomcat 6、Spring Framework 3、Hibernate 4、EhCache を実行する Web アプリケーションがあります。ガベージ コレクションに 30 秒以上かかるという非常に長い時間がかかり、アプリケーションが応答しなくなるという問題があります。
現在テスト中ですが、メモリを追加するという明らかなことは別として、ガベージ コレクションの時間を短縮するために調整できる側面があるかどうか疑問に思っていました。
積極的にキャッシュしているため、メモリ使用量の主な原因は EHCache です。しかし、私は常に EHCache ストアのサイズを決めるのが難しいと感じています (新しい EhCache バイト サイズ ストアは、キャッシュされたオブジェクト グラフが非常に大きくなる可能性があるため、あらゆる種類の問題を引き起こします)。
これらはJVMの私の設定です
JAVA_OPTS="$JAVA_OPTS -server -Xms256m -Xmx704m XX:OnOutOfMemoryError=/usr/share/scripts/on_server_crash.sh -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tomcat6 -XX:MaxPermSize=192m -XX:+UseConcMarkSweepGC