6.2.4. ジャーナルファイルの圧縮

AMQ Broker には、ジャーナルからデッド領域を削除し、データの圧縮解除によりディスク領域が少なくなるようにする圧縮アルゴリズムが含まれています。コンパクションを開始するタイミングを決定するには、2 つの条件が使用されます。両方の条件が満たされると、コンパクションプロセスはジャーナルを解析し、期限切れのレコードをすべて削除します。そのため、ジャーナルにはファイルが少なくなります。条件は次のとおりです。

  • ジャーナル用に作成されたファイルの数。
  • ジャーナルファイルのライブデータの割合。

BROKER_INSTANCE_DIR/etc/broker.xml で両方の条件を設定します。

手順

  • コンパクションプロセスの条件を設定するには、以下の例のように以下の 2 つの要素を追加します。

    <configuration>
      <core>
        ...
        <journal-compact-min-files>15</journal-compact-min-files> 1
        <journal-compact-percentage>25</journal-compact-percentage>  2
        ...
      </core>
    </configuration>
    1
    コンパクションの開始前に作成されたファイルの最小数。少なくとも journal-compact-min-files が設定されない限り、圧縮アルゴリズムは開始されません。デフォルト値は 10 です。これを 0 に設定すると、ジャーナルが無限に増加する可能性があるため、コンパクションが無効になります。
    2
    ジャーナルファイルのライブデータの割合。ライブデータがこの割合より少ないとみなされた場合は、圧縮が開始されます。ジャーナルに少なくとも journal-compact-min-files データファイルがあるまで、圧縮は開始されないことに注意してください。デフォルト値は 30 です。
CLI を使用したジャーナルの圧縮

また、コマンドラインインターフェイス (CLI) を使用してジャーナルを圧縮することもできます。

手順

  1. BROKER_INSTANCE_DIR の所有者としてブローカーを停止します。以下の例では、AMQ Broker のインストール時にユーザー amq-broker が作成されています。

    su - amq-broker
    cd __BROKER_INSTANCE_DIR__/bin
    $ ./artemis stop
  2. (オプション) 以下の CLI コマンドを実行して、データツールのパラメーターの全一覧を取得します。デフォルトでは、このツールは BROKER_INSTANCE_DIR/etc/broker.xml にある設定を使用する点に注意してください。

    $ ./artemis help data compact.
  3. 以下の CLI コマンドを実行して、データを圧縮します。

    $ ./artemis data compact.
  4. ツールがデータを正常に圧縮したら、ブローカーを再起動します。

    $ ./artemis run

関連情報

AMQ Broker には、ジャーナルファイル管理用の CLI コマンドが多数含まれています。詳細は、付録の コマンドラインツール を参照してください。