私の運用アプリケーションの1つでは、Oracle JRockitをJVMとして使用しています。マイナーGC頻度は非常に高い(約40秒ごと)。しかし、しばらくの間フルGCが頻繁に発生し、その間マイナーGCは無視できるバイトを再利用します。アプリケーションの応答が1秒で要求され、完全なGCの一時停止が1秒以上かかるため、アプリケーションアプリケーションが失敗します。GC中に完全なGC&ゼロ再生が頻繁に発生
GCログからいくつかの観測があります。 1マイナーGCは、特定の期間以外の期間に任意のバイトを再利用できません。マイナーGCは、託児所のほぼ95〜99%を再利用します。 2 - 私が観察しています緊急パラレルスイープは、問題の頻度が2GBととともに減少
私のヒープの設定が
Heap : 10 GB
Nursery : 1GB
GC : gencon
Keeparea : 50%
CompactionRatio : 10%
gcTrigger : 40%
我々が2GB & 3ギガバイトに保育園のサイズに変更してみましたされ、この圧縮フェーズ中を要求しました3ギガバイト
と、この問題が発生した理由を任意のヘルプを高めたり、このさらなる
UPDAを調査する方法te 1:
私はGC用のmemdbgモジュールを有効にしており、Nurseryパーツがデフォルトの上限10000よりも高いためFull GCがトリガーされていることがわかりましたが、OCもナーサリの部品を多く残しています。この件に関するガイダンス
JRockitでの私の経験はちょっと弱いです。しかし、私があなただったら、さまざまな記憶域の塗りつぶしグレードについてより深く理解しようとします。 JRockitのオンボードツール(HotSpotのJConsoleをお勧めします)を知らずに、あなたのYourKitに15日間の試用版を提供することができます。 – Jonathan