2.2. ガベージコレクター
ガベージコレクションの場合、Red Hat build of OpenJDK 8 ではデフォルトで Parallel コレクターが使用されますが、Red Hat build of OpenJDK 11 ではデフォルトで Garbage-First (G1) コレクターが使用されます。
ガベージコレクターを選択する前に、次の詳細を考慮してください。
-
スループットを向上させる場合は、Parallel コレクターを使用します。Parallel コレクターはスループットを最大化しますが、レイテンシーは無視します。つまり、アプリケーションの応答時間を適正にする場合は、ガベージコレクションの一時停止が問題になる可能性があります。ただし、アプリケーションがバッチ処理を実行していて、一時停止時間を考慮する必要がない場合は、Parallel コレクターが最適な選択肢です。
‑XX:+UseParallelGC
JVM オプションを設定し、Parallel コレクターに切り替えることができます。 - スループットとレイテンシーのバランスをとる場合は、G1 コレクターを使用します。G1 コレクターは、数百ミリ秒の一時停止時間で、妥当なレイテンシーを確保し、優れたスループットを実現できます。上記の説明のように、アプリケーションを Red Hat build of OpenJDK 8 から Red Hat build of OpenJDK 11 に移行するときにスループットの問題に気付いた場合は、Parallel コレクターに切り替えることができます。
- ガベージコレクションを低レイテンシーに保つ場合は、Shenandoah コレクターを使用します。
起動時に ‑XX:+<gc_type>
JVM オプションを指定することにより、使用するガベージコレクターのタイプを選択できます。たとえば、‑XX:+UseParallelGC
オプションは Parallel コレクターに切り替えます。