Java メモリ設定の変更

Edge for Private Cloud v4.19.01

トラフィック要件や処理要件に応じて、Java ベースの Private Cloud コンポーネントを稼働させるノードのヒープメモリ サイズやクラス メタデータ サイズを変更する必要があります。

このセクションでは、デフォルトと推奨の Java のヒープメモリ サイズに加えて、デフォルトを変更するプロセスについて説明します。最後には、プロパティ ファイルを使用して他の JVM 設定を変更する方法について説明します。

デフォルトと推奨のヒープメモリ サイズ

次の表に、Java ベースの Private Cloud コンポーネントのデフォルトと推奨の Java ヒープメモリ サイズを示します。

コンポーネント プロパティのファイル名 デフォルト
ヒープサイズ
推奨
ヒープサイズ
ランタイム
Cassandra なし 自動的に構成される1 自動的に構成される1
Message Processor message‑processor.properties 512 MB 搭載している RAM の 1/2
Router router.properties 512 MB 512 MB
分析
Postgres Server postgres‑server.properties 512 MB 512 MB
Qpid Server qpid‑server.properties 512 MB 2 GB~4 GB
管理
Management Server management‑server.properties 512 MB 512 MB
UI ui.properties 512 MB 512 MB
OpenLDAP なし ネイティブ アプリ2 ネイティブ アプリ2
Zookeeper zookeeper.properties 2,048 MB 2,048 MB

1 Cassandra は、起動時に最大ヒープサイズを動的に計算します。現在、これは合計システムメモリの半分で、最大 8,192 MB です。

2 すべての Private Cloud コンポーネントが Java で実装されているわけではありません。ホスト プラットフォームでネイティブに実行されるアプリは、Java ベースではないため、構成可能な Java ヒープサイズがありません。代わりに、ホストシステムでメモリ管理を行っています。

ノード上の Java ベースのコンポーネントに割り当てる、Apigee で推奨される合計メモリ量を決定するには、そのノードにある各コンポーネントに上記の値を追加します。たとえば、Postgres サーバーと Qpid サーバーの両方をホストしているノードの場合、Apigee では合計メモリ割り当てを 2.5 GB~4.5 GB にすることをおすすめします。

必要なハードウェア(RAM など)のリストについては、インストール要件をご覧ください。

ヒープメモリ サイズを変更する

ヒープメモリ設定を変更するには、コンポーネントのプロパティ ファイルを編集します。たとえば、Message Processor の場合、/opt/apigee/customer/application/message-processor.properties ファイルを編集します。

message-processor.properties ファイルが存在しない場合、または Edge コンポーネントに対応する .properties ファイルが存在しない場合は、次の例に示すように、ファイルを作成して所有権を「apigee」ユーザーに変更します。

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

コンポーネント(たとえば、Message Processor)が複数のマシンにインストールされている場合、そのコンポーネントをホストするすべてのマシンでプロパティ ファイルを編集してください。

次の表に、ヒープサイズを変更するために編集するプロパティを示します。

プロパティ 説明
bin_setenv_min_mem

最小ヒープサイズを設定します。デフォルトは、デフォルトと推奨のヒープメモリ サイズに示されている値に基づいています。

この設定は、Java -Xms オプションに対応しています。

bin_setenv_max_mem

最大ヒープサイズを設定します。デフォルトは、デフォルトと推奨のヒープメモリ サイズに示されている値に基づいています。

この設定は、Java -Xmx オプションに対応しています。

bin_setenv_meta_space_size

デフォルトのクラス メタデータ サイズを設定します。このデフォルト値は bin_setenv_max_permsize の値に設定され、128 MB がそのデフォルト サイズです。Message Processor の場合、この値をトラフィックに応じて 256 MB か 512 MB に設定することをおすすめします。

この設定は、Java -XX:MetaspaceSize オプションに対応しています。

上記のプロパティをマシン上のコンポーネントごとに設定し、メガバイトを表す接尾辞「m」を付けます。次に例を示します。

bin_setenv_min_mem=512m
    bin_setenv_max_mem=1024m
    bin_setenv_meta_space_size=1024m

プロパティ ファイルで値を設定したら、コンポーネントを再起動します。

/opt/apigee/apigee-service/bin/apigee-service component restart

例:

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

他の JVM プロパティを変更する

上記に示したプロパティで制御されない Java 設定については、該当する Edge コンポーネントに対応するプロパティ ファイルで以下を設定することもできます。

  • bin_setenv_ext_jvm_opts: 他のプロパティによって指定されない Java プロパティを設定します。次に例を示します。
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    ただし、-Xms-Xmx-XX:MetaspaceSize については、値が上記のプロパティによって制御されるため、bin_setenv_ext_jvm_opts を使用して設定しないでください。

Private Cloud コンポーネントのメモリ構成に関する追加のヒントについては、Edge フォーラムのこの記事をご覧ください。