Hitachi

Cosminexus V11 アプリケーションサーバ システム設計ガイド


7.18.2 チューニングの流れ

ZGCを使用している場合のチューニングでは,OutOfMemoryを抑制するためにJavaヒープ領域の最大サイズを設定します。Javaヒープ領域の最大サイズの設定以外の方法でOutOfMemoryを抑制する場合は,「7.18.3 GC停止時間およびスループットの改善方法」を参照してください。

〈この項の構成〉

(1) Javaヒープ領域の最大サイズの設定

Javaヒープ領域の最大サイズを設定する手順は次のとおりです。

  1. SerialGCを有効にして,最大の負荷を掛けた状態でアプリケーションを実行します。

  2. 拡張verbosegc情報から,FullGC発生後のJavaヒープ領域のサイズを確認します。

    FullGC発生後の拡張verbosegc情報の出力例を次に示します。下線部分がFullGC発生後のJavaヒープ領域のサイズです。

    …
    [VGC]<Wed Dec 28 14:12:05 2022>[Full GC 31780K->30780K(32704K), 0.2070500secs][DefNew::Eden: 3440K->1602K(3456K)][DefNew::Survivor:58K->0K(64K)][Tenured: 28282K->29178K(29184K)][Metaspace:1269K->1269K(4096K)][cause:ObjAllocFail][User: 0.0156250 secs][Sys: 0.0312500 secs]
    …
  3. FullGC発生後の拡張verbosegc情報を何度か収集します。

  4. 手順3.で収集したFullGC発生後のJavaヒープ領域のサイズのうち,最も大きな値を,アプリケーションの動作に必要なJavaヒープ領域の最小サイズとします。

  5. Javaヒープ領域の最大サイズを設定します。

    -Xmxオプションを設定します。GC実行中のオブジェクトを余裕を持って作成できるようにするため,Javaヒープ領域の最大サイズは,手順4.で確認した値の1.5倍〜2倍に設定することを推奨します。

    なお,Javaヒープ領域の初期サイズ(-Xmsオプション)は,最大ヒープサイズと同じ値に設定することを推奨します。

(2) OutOfMemoryの発生調査

ZGCを有効にして,システムの検証を行います。OutOfMemoryが発生しているかどうかを確認し,結果に応じて次の作業を実施してください。