ここではG1GCのチューニング方法について記載します。チューニングはシステム構築時にし,システム要件を満たしていることを確認してから本番環境に適用してください。
Javaヒープ領域のサイズに関係するオプションの一覧を次の表に示します。なお,表の項番1~8は図の番号と対応しています。
表7-11 Javaヒープ領域内の各領域とMetaspace領域のサイズを指定するオプション
項番 | オプション名 | オプションの意味 |
---|---|---|
1 | -Xms<size> | Javaヒープの初期サイズを設定します。※1 |
2 | -Xmx<size> | Javaヒープの最大サイズを設定します。※1 |
3 | -XX:NewSize=<value> | New領域の最小サイズを設定します。※2 |
4 | -XX:MaxNewSize=<value> | New領域の最大サイズを設定します。※2 |
5 | -XX:NewRatio=<value> | Javaヒープ領域に対するNew領域の割合を設定します。※2 <value>が2の場合は,New領域とTenured領域の割合が,1:2になります。 |
6 | -XX:SurvivorRatio=<value> | New領域に対するSurvivor領域で最大に取ることができる領域サイズの割合を設定します。 Survivor領域の最大で取ることができる領域サイズは次の式で求められます。 (Survivor領域のサイズ)※3=(New領域のサイズ)/SurvivorRatio |
7 | -XX:MetaspaceSize=<size> | Metaspace領域の初期サイズを設定します。※4 |
8 | -XX:MaxMetaspaceSize=<size> | Metaspace領域の最大サイズを設定します。※4 |
図7-32 Javaヒープ領域内の各領域とMetaspace領域のサイズとオプションの対象範囲
次にG1GCのチューニングに利用するオプションを次の表に示します。各オプションの詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「16.5 Application Serverで指定できるJava HotSpot VMのオプション」の各オプションの説明を参照してください。
表7-12 G1GCのチューニングオプション
項番 | オプション名 | デフォルト値 | オプションの意味 |
---|---|---|---|
1 | -XX:MaxGCPauseMillis=<value> | 200 | 目標停止時間[ms] |
2 | -XX:ParallelGCThreads=<value> | CPU数※ (OSが認識しているCPU数) | Evacuationの処理をするスレッド数 |
3 | -XX:ConcGCThreads=<value> | (ParallelGCThreads + 2) / 4 | CM処理をするスレッド数 |