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 設定を変更する手順は次のとおりです。
GC プロパティを確認する
次の手順では、構成された GC プロパティを確認する方法について説明します。
-
次のコマンドを使用して、Message Processor のソース ディレクトリ
/opt/apigee/edge-message-processor/sourceで GC プロパティを検索します。grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
-
このコマンドの出力に、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 設定を変更する手順は次のとおりです。
-
Message Processor マシンで
/opt/apigee/customer/application/message-processor.propertiesファイルをエディタで開きます。ファイルが存在しない場合は作成します。次に例を示します。vi /opt/apigee/customer/application/message-processor.properties
-
ターゲット プロファイルに基づいて、必要な 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"
-
オプション A: デフォルトのガベージ コレクタとして G1GC を使用し、いくつかの変更を加えます。
- 変更を保存します。
-
このプロパティ ファイルが
apigeeユーザーによって所有されていることを確認します。次に例を示します。chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
次のコマンドを使用して、Message Processor を再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 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 に適用されていることを確認するには:
-
/opt/apigee/edge-message-processor/confディレクトリで GC プロパティを検索し、新しい値が設定されていることを確認します。次に例を示します。grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
-
/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
-
実行中の 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が含まれていることを確認します。
-
Apigee デフォルト G1GC の場合、コマンドラインに
- それでも GC 設定を構成できない場合は、Apigee Edge サポートにお問い合わせください。