[Java] Garbage First Garbage Collector Tuning

原文はこちら。
https://blogs.oracle.com/java/entry/garbage_first_garbage_collector_tuning

Java HotSpot VMのGarbage First Garbage Collector (G1 GC)のパフォーマンスリードであるMonica Beckwith(Oracleのテクニカルスタッフの主要メンバー)が執筆した、"Garbage First Garbage Collector Tuning"と題した記事が、OTNのJavaページにUpされています。この記事では、評価や分析、性能向上のためにG1 GCを適応させ、調整する方法を説明しています。

Beckwithが説明するように、Garbage First Garbage Collector (G1 GC)は、ポーズが短く、サーバー向けのJava HotSpot VM用世代別GCです。並行フェーズ、並列フェーズを両方使って、目標ポーズ時間を達成しつつ、良好なスループットを維持します。GCはメモリ管理ツールで、G1 GCがGCが必要と判断した場合には、まず最も生存データが少ないリージョンをGCの対象にします。これがGabage Firstと言われる所以です。

Beckwithは、収集フェーズとマーキングサイクルを説明し、デフォルトのチューニングデバイスを列挙しています。そして、ガベージコレクションのファインチューニング方法、評価方法の推奨情報を提示し、オーバーフローやメモリ枯渇のログメッセージへの対応方法をご紹介しています。

彼女は以下のようにまとめています。
"G1 GC is a regionalized, parallel-concurrent, incremental garbage collector that provides more predictable pauses compared to other HotSpot GCs. The incremental nature lets G1 GC work with larger heaps and still provide reasonable worst-case response times. The adaptive nature of G1 GC just needs a maximum soft-real time pause-time goal along-with the desired maximum and minimum size for the Java heap on the JVM command line."
G1 GCはリージョンに分割し、並列かつ同時実行できるインクリメンタルガベージコレクタであり、他のHotSpot GCに比べて、ポーズ時間を予測しやすいものになっています。インクリメンタルな性質のおかげで、G1 GCは大きなヒープを扱えますし、それでもまだ最悪の場合でも合理的な応答時間で返すことができます。G1 GCを使う場合、JVMコマンドラインでJavaヒープ用に所望の最大サイズ、最小サイズに加え、最大のソフトリアルタイムポーズ時間の目標時間を設定すればよいのです。
是非ご一読下さい。
Garbage First Garbage Collector Tuning (by Monica Beckwith)
- Learn about how to adapt and tune the G1 GC for evaluation, analysis and performance -
http://www.oracle.com/technetwork/articles/java/g1gc-1984535.html

0 件のコメント:

コメントを投稿