パラレル・サブ範囲リペアの最大値の設定

max_parallel_repairs構成オプションを設定する状況について説明します。実行速度の遅いリペアを手動で調整するか、リペアのトラブルシューティングを行う場合は、サブ範囲リペアの最大並列処理数のオプションを設定します。

実行速度の遅いリペアを手動で調整するか、リペアのトラブルシューティングを行う場合は、並列処理で実行するサブ範囲リペアの最大数を設定します。

max_parallel_repairsオプションを指定していない場合、または0(デフォルト)に設定している場合、Repair Service(リペア・サービス)は、並列処理で実行する適切な最大リペア数を計算します。基本計算では、ceiling(クラスター内のノード総数 / レプリケーション係数の最大総数)を使用します。この計算では、リペア中にレプリカ・セットが重複しません。

注意: DataStaxでは、time_to_completion_percentageスロットルを使用していない場合にのみ、max_parallel_repairsを手動で調整し、min_repair_timeとその他の高度なオプションやエキスパート・オプションの変更を行うことを推奨しています。「サブ範囲リペアのスロットルの調整または無効化」を参照してください。

cluster_name.conf

cluster_name.confファイルの場所は、インストールのタイプによって異なります。
  • パッケージ・インストール:/etc/opscenter/clusters/cluster_name.conf
  • tarボール・インストール:install_location/conf/clusters/cluster_name.conf

opscenterd.conf

opscenterd.confファイルの場所は、インストールのタイプによって異なります。
  • パッケージ・インストール:/etc/opscenter/opscenterd.conf
  • tarボール・インストール:install_location/conf/opscenterd.conf

手順

  1. すべてのクラスターについて編集する場合は opscenterd.conf を開き、特定のクラスターについて編集する場合は cluster_name.conf を開きます。
  2. お使いの環境に応じて[repair_service]構成を調整します。
    max_parallel_repairsを0に設定する(または空白のままにする)と、Repair Service(リペア・サービス)は、前述の数式に基づいて並列処理で実行するサブ範囲リペアの数を動的に計算します。
    [repair_service]
    max_parallel_repairs=0
    parallel_tasks_update_interval=120

    これは、最大パラレル・サブ範囲リペア数を決定するデフォルトの動作です。DataStaxでは、最大パラレル・リペア数の動的なデフォルト設定と、time_to_completion_target_percentageオプションで指定したスロットルを組み合わせて使用することを推奨しています。

    parallel_tasks_update_intervalにより、Repair Service(リペア・サービス)がサブ範囲リペア・サイクル中に実行するのに必要な並列タスクの数を定期的に再計算するまでの時間が決まります。デフォルトの間隔は120秒(2分)です。Repair Service(リペア・サービス)が、サイクルが時間どおりに完了するスループットを不適切に検出したことで、計算された並列タスク数がフラッピング(過度に振動)しているように見える場合は、間隔を延長します。一時的にRepair Service(リペア・サービス)ログをDEBUGに設定すると、調整が必要かどうかについてより多くの洞察を得ることができます。

    max_parallel_repairsを1に設定すると、Repair Service(リペア・サービス)は一度に1つのリペア・タスクのみを実行します。
    [repair_service]
    max_parallel_repairs=1

    サブ範囲リペアとインクリメンタル・リペアは、交互に1つずつタスクを実行します。Repair Service(リペア・サービス)は、サブ範囲リペアが完了するまで待ってから、インクリメンタル・リペアを開始し、その逆の場合も同様です。リペアで1つずつタスクを処理し、インクリメンタル・リペアとサブ範囲リペアを交互に行う設定は、トラブルシューティング時に問題を分離するときに役立ちます。

    動的に計算された値(最初の例で示したデフォルトの0が設定されている場合か未設定の場合)でサブ範囲リペアの実行速度が遅い場合は、最大パラレル・リペア数を手動で設定します。
    [repair_service]
    max_parallel_repairs=4
    [repair_service]
    max_parallel_repairs=4

    お使いの環境でリペアの処理が予想どおりになるまで、値の調整を繰り返します。

  3. opscenterdを再起動します
  4. [Status]タブでリペアの進行状況を監視します。
  5. Repair Service(リペア・サービス)ログのメッセージで、構成の変更がお使いの環境に与える影響を確認します。