QPID オペレーション ガイド

Edge for Private Cloud バージョン 4.52.01 には、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 Broker は、オフヒープ メモリとヒープメモリの 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 Broker のログは $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 の再起動