Java メモリ設定の変更

トラフィック要件や処理要件に応じて、Java ベースの Private Cloud コンポーネントを実行しているノードのヒープメモリ サイズまたはクラス メタデータ サイズを変更しなければならない場合があります。

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

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

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

コンポーネント プロパティ ファイル名 デフォルト
ヒープサイズ
推奨
ヒープサイズ
ランタイム
Cassandra なし 自動的に構成される1 自動的に構成される1
Message Processor message‑processor.properties 512 MB 3 GB~6 GB2
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 なし ネイティブ アプリ3 ネイティブ アプリ3
Zookeeper zookeeper.properties 2,048 MB 2,048 MB

1 Cassandra は起動時に最大ヒープサイズを動的に計算します。現在、これは合計システムメモリの半分であり、最大値は 8,192 MB です。ヒープサイズの設定方法については、ヒープメモリ サイズを変更するをご覧ください。

2 Message Processor では、ヒープサイズを 3 GB から 6 GB の間で設定することをおすすめします。6 GB を超えるヒープサイズに増やす場合は、必ずその前にパフォーマンス テストを実施してください。

パフォーマンス テスト中にヒープ使用量が上限に近づいた場合は、上限を増やします。ヒープサイズの設定方法については、ヒープメモリ サイズを変更するをご覧ください。

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

ノード上の Java ベース コンポーネントに割り当てる合計メモリ量を決定するには、そのノードに存在する各コンポーネントの上記の値を加算します。たとえば、Postgres サーバーと Qpid サーバーの両方をホストしているノードでは、合計 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=4500m
bin_setenv_max_mem=4500m
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 フォーラムのこの記事をご覧ください。