New世代領域用GC制御を並列化して実行する機能、およびJavaアプリケーションと同時並列に動作するOld世代領域用GC制御「コンカレント・マーク・スイープGC(CMS-GC)機能」を追加して構成されたGC処理です。CMS-GC機能を追加されたパラレルGC制御であることから、このGCをCMS付きパラレルGCと呼ぶ場合もあります。
CMS-GCは、JavaアプリケーションがFull GCによって停止されることにより影響を受ける「アプリケーションの応答性能の平準化」を改善するために実行される「Old世代領域内の不要オブジェクト回収用のGC機構」です。
Javaアプリケーションを停止させて実行するFull GCに対し、CMS-GCはJavaアプリケーションと同時並列に動作し、Old世代領域内の不要オブジェクトを回収します。CMS-GCの実行により、Old世代領域(New世代領域にあるオブジェクトの移動先や巨大オブジェクトの生成先となる領域)の空きを、Javaアプリケーション動作と並行して増加させることができるため、Full GCの発生を抑えることができます。これにより、JavaアプリケーションはFull GCにより停止される影響を受けにくくなり、応答性能平準化の改善が期待できます。
なおCMS-GC動作中は、NewGC処理/Full GC処理の実行開始が遅延する場合があります。そして遅延期間中は、Javaアプリケーションとしての動作も停止します。そのため、ガーベジコレクション処理の結果ログ内のNewGC処理/Full GC処理に対して出力されたGC処理実行時間よりも長い間、Javaアプリケーションとしての動作が停止している場合があります。
CMS付きパラレルGCを有効にする場合に指定するオプション
-XX:+UseConcMarkSweepGC |
Javaヒープおよびメタスペースのチューニング用オプション(CMS付きパラレルGC使用時)
CMS付きパラレルGC使用時に利用可能となる「Javaヒープおよびメタスペースのチューニング用オプション」です。
-Xms -Xmx -XX:NewSize -XX:MaxNewSize -XX:NewRatio -XX:TargetSurvivorRatio -XX:MetaspaceSize -XX:MaxMetaspaceSize -XX:CompressedClassSpaceSize -XX:CMSInitiatingOccupancyFraction -XX:+UseCMSInitiatingOccupancyOnly