Message Processor のガベージ コレクタを構成する

Edge for Private Cloud 4.54.00(Java 21 で動作)では、Message Processor はデフォルトで Garbage-First Garbage Collector(G1GC)を使用します。このドキュメントでは、Message Processor でガベージ コレクションの設定を構成して確認する方法について説明します。

Message Processor のガベージ コレクタをカスタマイズする

このセクションでは、Edge Message Processor で代替のガベージ コレクション(GC)設定を構成する手順について説明します。GC パラメータを管理するには、Message Processor の GC プロパティを更新します。構成プロパティを調整するには、Edge の構成方法で定義されているトークン構文を使用します。

Message Processor で GC 設定を変更する手順は次のとおりです。

  1. GC プロパティを確認する
  2. Message Processor で GC を変更する

GC プロパティを確認する

次の手順では、構成された GC プロパティを確認する方法について説明します。

  1. 次のコマンドを使用して、Message Processor のソース ディレクトリ /opt/apigee/edge-message-processor/source で GC プロパティを検索します。
    grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. このコマンドの出力に、Message Processor の GC プロパティの構成が表示されていることを確認します。
    /opt/apigee/edge-message-processor/source/conf/system.properties:useG1GC={T}conf_system_useG1GC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useZGC={T}conf_system_useZGC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}

    {T}{/T} タグの間の文字列は、Message Processor の .properties ファイルで設定できるプロパティの名前です。

Message Processor で GC を変更する

Apigee Message Processor で GC 設定を変更する手順は次のとおりです。

  1. Message Processor マシンで /opt/apigee/customer/application/message-processor.properties ファイルをエディタで開きます。ファイルが存在しない場合は作成します。次に例を示します。
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. ターゲット プロファイルに基づいて、必要な GC 構成行を追加します。
    • オプション A: デフォルトのガベージ コレクタとして G1GC を使用し、いくつかの変更を加えます。
      conf_system_useG1GC=true
      conf_system_useStringDeduplication=true
      conf_system_g1gc.g1ReservePercent=15
    • オプション B: Generational ZGC を有効にする(超低レイテンシのデプロイでは省略可):
      conf_system_useG1GC=false
      conf_system_useZGC=true
      bin_setenv_max_meta_space_size=1024m
    • オプション C: 一般的な GC 設定を有効にする:

      コンポーネントの .properties オーバーライド ファイル(/opt/apigee/customer/application/message-processor.properties)で bin_setenv_ext_jvm_opts を設定して、一般的な GC プロパティを構成し、コンポーネントを再起動します。次に例を示します。

      conf_system_useG1GC=false
      conf_system_useZGC=false
      bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
  3. 変更を保存します。
  4. このプロパティ ファイルが apigee ユーザーによって所有されていることを確認します。次に例を示します。
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 次のコマンドを使用して、Message Processor を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Message Processor が複数ある場合は、すべての Message Processor で上記の手順を繰り返します。

文字列の重複除去を更新

デフォルトでは、G1GC 構成は UseStringDeduplication を true に設定します。これにより、同一の String 値が単一の文字配列を共有できるようになり、Java ヒープメモリの割り当てが最適化されます。文字列の重複除去を無効にするには、/opt/apigee/customer/application/message-processor.properties で conf_system_useStringDeduplication=false を設定し、Message Processor で GC を変更するの説明に従って Message Processor を再起動します。

Message Processor の GC 構成を確認する

GC 構成の変更が Message Processor に適用されていることを確認するには:

  1. /opt/apigee/edge-message-processor/conf ディレクトリで GC プロパティを検索し、新しい値が設定されていることを確認します。次に例を示します。
    grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
    
  2. /opt/apigee/edge-message-processor/conf/system.properties に新しく構成した値が反映されていることを確認します。たとえば、Apigee Default GC の設定は次のように表示されます。
    /opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true
    /opt/apigee/edge-message-processor/conf/system.properties:useZGC=false
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.maxGCPauseMillis=200
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.initiatingHeapOccupancyPercent=45
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.g1ReservePercent=15
    /opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
  3. 実行中の Message Processor JVM プロセスが、想定どおりの -XX: フラグで起動されたことを確認します。
    ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
    
    • Apigee デフォルト G1GC の場合、コマンドラインに -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m が含まれていることを確認します。
    • 世代別 ZGC の場合は、コマンドラインに -XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m が含まれていることを確認します。
  4. それでも GC 設定を構成できない場合は、Apigee Edge サポートにお問い合わせください。

次のステップ