QPID オペレーション ガイド

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

Apigee での Qpid

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

  • 分析
  • 収益化

どちらのワークフローでも、Message Processor がメッセージを生成します。このメッセージはバッチに収集され、Qpid に push されます。アナリティクスの場合、メッセージは Qpid-server によって読み取られ、収益化の場合は Rating Server(management-server の一部)によって読み取られます。読み取られると、バッチ化されたメッセージはバッチ処理されずに取り込まれます。

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

メモリ

Qpid ブローカーは、オフヒープ メモリとヒープメモリの 2 種類のメモリを使用します。Qpid はメッセージをオフヒープメモリに保存し、独自の内部タスク、キューへのダイレクト メッセージと交換などにヒープメモリを使用します。ほとんどの場合、Qpid ブローカーのオフヒープとヒープメモリの比率は 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 ブローカーのログは $APIGEE_ROOT/var/log/apigee-qpidd に保存されます。

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

Qpid ブローカーは、メッセージをデータ ディレクトリに保持します。デフォルトでは、ブローカーは、データ ディレクトリをホストするファイル システムの使用率が 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 の再起動