QPID オペレーション ガイド

Edge for Private Cloud バージョン 4.54.00 には、Qpid Broker-J 10.0.1 が付属しています。このページでは、Edge for Private Cloud(Java ベースのブローカーを使用)の apigee-qpidd コンポーネントのメモリとディスクに関する考慮事項について説明します。以下のセクションは、Apigee の Qpid ユースケースに特化したもので、Apigee の構成メカニズムを使用して Qpid をチューニングする方法について説明します。

Apigee の Qpid

Apigee では、Qpid は主に次の 2 つのワークフローで使用されます。

  • アナリティクス
  • 収益化

どちらのワークフローでも、Message Processor はメッセージを生成し、それらのメッセージはバッチに収集されて Qpid に push されます。Analytics の場合、メッセージは Qpid サーバーによって読み取られます。収益化の場合、メッセージは Rating Server(management-server の一部)によって読み取られます。読み取られたバッチ メッセージは、バッチ解除されて取り込まれます。

以降のセクションでは、Qpid を使用したメモリとディスクの推奨構成について説明します。これらの構成は、アナリティクスまたは収益化の 1 つのメッセージ サイズが 2 KB であることを前提としています。デフォルトのバッチサイズが 50 の場合、Qpid の各メッセージは約 100 KB になります。Apigee では、プロキシがメッセージ(Analytics または Monetization)を変更して追加情報を追加できます。極端な場合、これにより、Qpid の単一メッセージのサイズとバッチ処理されたメッセージ全体のサイズが大幅に変化する可能性があります。以下のセクションで説明するメモリとディスクに関する一般的な推奨事項は、このような場合にも当てはまりますが、スムーズな運用を確保するために、Qpid に追加の調整が必要になる場合があります。

メモリ

Qpid Broker は、オフヒープ メモリとヒープメモリの 2 種類のメモリを使用します。Qpid はメッセージをオフヒープメモリに保存し、独自の内部タスク、キューやエクスチェンジへのダイレクト メッセージなどにヒープメモリを使用します。ほとんどの場合、Apigee では、Qpid Broker のオフヒープメモリとヒープメモリの比率を 3:1 に保つことをおすすめします。

オフヒープメモリ内のメッセージはディスクに保持されます。また、オフヒープメモリの合計使用量が特定のしきい値を超えると、Qpid はメッセージをディスクにオーバーフローするように構成されます。

デフォルトでは、Apigee はノードで使用可能なメモリに基づいて Qpid Broker のヒープメモリとオフヒープメモリを計算します。Apigee のスクリプトでは、Qpid Broker のヒープとオフヒープ メモリの合計に 4 GB のソフト上限が設定されています。これらの上限をオーバーライドする場合は、次の 2 つの構成を使用して、Qpid のヒープメモリとオフヒープメモリに独自の値を設定できます。

  • ヒープメモリの構成: bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m
  • オフヒープメモリの構成: bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m

構成をオーバーライドする方法については、Qpid 構成を変更する方法をご覧ください。

詳細については、 メモリに関する Apache Qpid リファレンスをご覧ください。

ディスク

Qpid Broker のデータ ディレクトリは $APIGEE_ROOT/data/apigee-qpidd です。Qpid Broker のログは $APIGEE_ROOT/var/log/apigee-qpidd に保存されます。

データ ディレクトリをホストするファイル システムのパフォーマンスは、ブローカー全体のパフォーマンスに大きく影響します。最適なパフォーマンスを得るには、レイテンシが低く、他のアプリで使用されていないデバイスを選択します。

Qpid Broker は、メッセージをデータ ディレクトリに永続化します。デフォルトでは、ブローカーは、データ ディレクトリをホストするファイル システムが 80% になるまでメッセージを受け入れます。このしきい値を変更するには、各 Qpid ノードで以下の例に示す構成をオーバーライドします。

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

この例では、基盤となるファイル システムが 60% に達すると、ブローカーは新しいメッセージを拒否します。

Qpid 構成を変更する方法

Qpid 構成を変更するには:

  1. 次のファイルを作成または編集します。
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. 必要に応じて、構成を追加、削除、変更します。たとえば、Qpid Broker の最大ヒープメモリを 6 GB に変更するには、ファイルに次の構成オーバーライドを追加します。
    bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
  3. 変更を保存し、ファイルが apigee ユーザーによって所有され、読み取り可能であることを確認します。
    chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
  4. qpidd プロセスを再起動します。
    apigee-service apigee-qpidd restart