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.properties 512 MB 512 MB
アナリティクス
Postgres サーバー postgres‑server.properties 512 MB 512 MB
Qpid サーバー qpid‑server.properties 512 MB 2 GB ~ 4 GB
管理
管理サーバー 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 サーバーの両方をホストする場合、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=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

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

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