14.7. リバランスパフォーマンスチューニングの概要
クラスターリバランスのパフォーマンスチューニングオプションを調整できます。これらのオプションは、リバランスのパーティションレプリカおよびリーダーシップの移動が実行される方法を制御し、また、リバランス操作に割り当てられた帯域幅も制御します。
パーティション再割り当てコマンド
最適化プロポーザルは、個別のパーティション再割り当てコマンドで構成されています。プロポーザルを開始すると、Cruise Control サーバーはこれらのコマンドを Kafka クラスターに適用します。
パーティション再割り当てコマンドは、以下のいずれかの操作で構成されます。
パーティションの移動: パーティションレプリカとそのデータを新しい場所に転送します。パーティションの移動は、以下の 2 つの形式のいずれかになります。
- ブローカー間の移動: パーティションレプリカを、別のブローカーのログディレクトリーに移動します。
- ブローカー内の移動: パーティションレプリカを、同じブローカーの異なるログディレクトリーに移動します。
- リーダーシップの移動: パーティションのレプリカのリーダーを切り替えます。
Cruise Control によって、パーティション再割り当てコマンドがバッチで Kafka クラスターに発行されます。リバランス中のクラスターのパフォーマンスは、各バッチに含まれる各タイプの移動数に影響されます。
パーティション再割り当てコマンドを設定するには、「Rebalance tuning options 」を参照してください。
レプリカの移動ストラテジー
クラスターリバランスのパフォーマンスは、パーティション再割り当てコマンドのバッチに適用される レプリカ移動ストラテジー の影響も受けます。デフォルトでは、Cruise Control は BaseReplicaMovementStrategy
を使用します。これは、生成された順序でコマンドを適用します。ただし、プロポーザルの初期に非常に大きなパーティションの再割り当てがある場合、このストラテジーによって他の再割り当ての適用が遅くなる可能性があります。
Cruise Control は、最適化プロポーザルに適用できる代替のレプリカ移動ストラテジーを 3 つ提供します。
-
PrioritizeSmallReplicaMovementStrategy
: 再割り当てを昇順で並べ替えます。 -
PrioritizeLargeReplicaMovementStrategy
: 再割り当てを降順で並べ替えます。 -
PostponeUrpReplicaMovementStrategy
: 非同期のレプリカがないパーティションのレプリカの再割り当てを優先します。
これらのストラテジーをシーケンスとして設定できます。最初のストラテジーは、内部ロジックを使用して 2 つのパーティション再割り当ての比較を試みます。再割り当てが同等である場合は、順番を決定するために再割り当てをシーケンスの次のストラテジーに渡します。
レプリカの移動ストラテジーを設定するには、「Rebalance tuning options 」を参照してください。
リバランスチューニングオプション
Cruise Control には、リバランスパラメーターを調整するための設定オプションが複数あります。これらのオプションは以下の方法で設定されます。
-
プロパティーとして、デフォルトの Cruise Control 設定の
cruisecontrol.properties
ファイル -
/rebalance
エンドポイントへの POST 要求のパラメーター
両メソッドの関連設定の概要は、以下の表で説明されています。
プロパティーおよび要求パラメーターの設定 | 説明 | デフォルト値 |
---|---|---|
| 各パーティション再割り当てバッチでのブローカー間パーティション移動の最大数。 | 5 |
| ||
| 各パーティション再割り当てバッチでのブローカー内パーティション移動の最大数。 | 2 |
| ||
| 各パーティション再割り当てバッチにおけるパーティションリーダー変更の最大数。 | 1000 |
| ||
| パーティションの再割り当てに割り当てる帯域幅(バイト/秒単位)。 | null(無制限) |
| ||
|
パーティション再割り当てコマンドが、生成されたプロポーザルに対して実行される順番を決定するために使用されるストラテジー (優先順位順) の一覧。
プロパティーには、ストラテジークラスの完全修飾名のコンマ区切りリストを使用します(各クラス名の先頭に パラメーターには、レプリカ移動ストラテジーのクラス名のコンマ区切りリストを使用します。 |
|
|
デフォルト設定を変更すると、リバランスの完了までにかかる時間と、リバランス中の Kafka クラスターの負荷に影響します。値を小さくすると負荷は減りますが、かかる時間は長くなり、その逆も同様です。
その他のリソース
- Cruise Control Wiki の「Configurations」
- Cruise Control Wiki の REST API。