New世代領域用GC制御に対し、「当該処理を並列化して実行する機能」を追加して構成されたGC処理です。New世代領域用のGC制御を並列化して実行することから、このGCをパラレルGCと呼ぶ場合もあります。
パラレルGCを有効にする場合に指定するオプション
FJVMの場合は、デフォルトでこのGC処理が実行されます。
-XX:+UseParallelGC |
Javaヒープおよびメタスペースのチューニング用オプション(パラレルGC使用時)
パラレルGC使用時に利用可能となる「Javaヒープおよびメタスペースのチューニング用オプション」です。
なお、パラレルGC使用時は、JavaヒープのNew世代領域およびOld世代領域の大きさに関する値が自動的に調整および最適化されるため、通常、New世代領域の大きさやNew世代領域とOld世代領域の大きさのバランスをチューニングするためのオプションを使用する必要はありません。
-Xms |
(*) New世代領域の大きさや、New世代領域とOld世代領域の大きさのバランスをチューニングするためのオプションです。
注意
GC処理用スレッド数
パラレルGCを使用した場合は、実行するハードウェアに搭載しているCPU数に依存した数のGC処理用スレッドがJavaプロセス内に作成されます。そのため、GC処理用スレッドの数分だけ、スタック域などのスレッド用のメモリ領域が必要となります。
Javaプロセス内でのメモリ量を抑えるためなど、GC処理用スレッドの数を調整する場合には、以下のオプションでGC処理用スレッドの数を指定することにより、GC処理用スレッドの数を調整することができます。
なおGC処理用スレッドの数を抑制した分だけGC処理における性能がおちる場合もありますので、このオプションを用いる場合には、十分な性能確認を実施してください。また、一般的に、CPU数以上の数のGC処理用スレッドを作成しても、GC処理における性能向上にはつながりません。
パラレルGCで使用するGC処理用スレッドの数を指定するオプション
-XX:ParallelGCThreads=New世代領域GC用スレッドの数 |
New世代領域用GC処理を行うGCスレッドの数を指定します。
「0」が指定された場合は、デフォルト値となります。デフォルト値は以下のとおりです。
実行するハードウェアに搭載しているCPU数が7以下の場合 = CPU数分
実行するハードウェアに搭載しているCPU数が8以上の場合 = 8
注意
メモリ割り当てプールの省略値自動調整機能
FJVMのパラレルGCでは、エルゴノミクス機能によるメモリ割り当てプールの初期値(-Xms)および最大値(-Xmx)の省略値自動調整機能(マシンの物理メモリ量などに応じて、-Xmsおよび-Xmxの各オプションに対する省略値を自動的に決定する機能)を無効にしています。
FJVMで、エルゴノミクス機能によるメモリ割り当てプールの省略値自動調整機能を有効にする場合は、以下のオプションを指定してください。
ただし、このオプション指定は、システムのメモリ資源不足の要因となる場合があるため、システム内に複数のJavaプロセスを起動、実行する場合には使用しないでください。
メモリ割り当てプールの省略値自動調整機能を有効にするオプション
-XX:+AutomaticallyJavaHeapSizeSetting |
注意
メモリ領域不足事象の検出機能
FJVMのパラレルGCでは、エルゴノミクス機能によるメモリ領域不足事象の検出機能(以下の各オプション指定値による条件が同時に成立した場合に、メモリ領域不足事象(java.lang.OutOfMemoryError)として検出する機能)を無効にしています。
メモリ領域不足事象検出条件
-XX:GCTimeLimit=GC処理に要する時間の上限値 (デフォルトは98) |
Javaアプリケーションの合計処理時間に対して、GC処理に要した時間の上限値をパーセント単位(%)で指定します。
指定された上限値を超えた場合、検出条件の一方が成立します。
-XX:GCHeapFreeLimit=GC処理後のJavaヒープ量の空きスペースの下限値 (デフォルトは2) |
メモリ割り当てプールの最大値に対する、GC処理後のJavaヒープ量の空きスペースの下限値をパーセント単位(%)で指定します。
指定された下限値を下回った場合、検出条件の一方が成立します。
FJVMでエルゴノミクス機能によるメモリ領域不足事象検出機能を有効にする場合は、以下のオプションを指定してください。
ただし、このオプション指定で検出されるメモリ領域不足事象は、Javaヒープの使用量だけではなく、メモリ領域不足事象検出用オプションで指定された値、およびガーベジコレクション処理の動作状況から得られた統計情報などを元に決定されるため、Javaヒープの使用量が不足していない状態であっても、 メモリ領域不足事象が検出される場合がありますので注意してください。
メモリ領域不足事象検出を有効にするオプション
-XX:+UseGCOverheadLimit |