Web アプリケーション用に JVM を構成するための適切な設定を探しています。古い/若い/パーマの世代について読んだことがありますが、この構成でこれらのパラメーターを使用するのはうまくいきません。
4GBのうち、約3GBがキャッシュ( EhCacheを使ったアプリカティブキャッシュ)に使われているので、それを考慮して最適な設定を探しています。参考までに、キャッシュはアプリケーションの存続期間中は静的です (ディスクからロードされ、期限切れになることはありません) が、頻繁に使用されます。
私はすでにアプリケーションのプロファイリングを行い、DB クエリ、アプリケーションのアーキテクチャ、キャッシュ サイズなどに関する最適化を実行しました。ここで JVM 構成のアドバイスを探しています。ガベージ コレクターの99% のスループットを測定したところ、フル GC の実行時に 6 ~ 8 秒の一時停止がありました (約 1/2 時間に 1 回)。
現在の JVM パラメータは次のとおりです。
-XX:+UseParallelGC -XX:+AggressiveHeap -Xms2048m -Xmx4096m
-XX:NewSize=64m -XX:PermSize=64m -XX:MaxPermSize=512m
-verbose:gc -XX:+PrintGCDetails -Xloggc:gc.log
これらのパラメーターは、かなり前に記述されているため、完全にオフになっている可能性があります... アプリケーションがそれほど大きくなる前に。
Java 1.5 64 ビットを使用しています。
改善の可能性はありますか?
編集:マシンには4つのコアがあります。