11.4. 重新平衡性能调优概述
您可以为集群重新平衡调整几个性能调优选项。这些选项控制如何执行重新平衡中的分区副本和领导移动,以及分配给重新平衡操作的带宽。
11.4.1. 分区重新分配命令 复制链接链接已复制到粘贴板!
优化建议 由单独的分区重新分配命令组成。当您 批准 一个提议时,Cruise Control 服务器会将这些命令应用到 Kafka 集群。
分区重新分配命令由以下一种操作组成:
分区移动:将分区副本及其数据传输到新位置。分区移动可以采用两种形式之一:
- Inter-broker move: 分区副本被移到不同代理上的日志目录中。
- intra-broker move: 分区副本被移到同一代理的不同日志目录中。
- 领导移动:这涉及切换分区副本的领导。
Cruise Control issues 分区重新分配命令到批处理中的 Kafka 集群。在重新平衡过程中集群的性能会受到每个批处理中包含的每种移动数量的影响。
11.4.2. 副本移动策略 复制链接链接已复制到粘贴板!
集群重新平衡性能也会受到 副本移动策略的影响,该策略应用到分区重新分配命令的批处理。默认情况下,Cruise Control 使用 BaseReplicaMovementStrategy
,它只是按照生成的顺序应用命令。但是,如果提议的早期有一些非常大的分区重新分配,则此策略可能会减慢其他重新分配的应用程序。
Cruise Control 提供四个替代的副本移动策略,可用于优化提议:
-
priorityitizeSmallReplicaMovementStrategy
: Order reassignments 按顺序排列。 -
prioritizeitizeLargeReplicaMovementStrategy
: Order reassignments 顺序降序。 -
PostponeUrpReplicaMovementStrategy
: 优先考虑为没有处于不同步状态的分区的服务的重新分配。 -
prioritizeitizeMinIsrWithOfflineReplicasStrategy
: 优先考虑重新分配(At/Under) MinISR 分区,并带有离线副本。只有在Kafka
自定义资源的 spec 中将cruiseControl.config.concurrency.adjuster.min.isr.check.enabled
设置为true
时,此策略才会正常工作。
这些策略可以配置为序列。第一个策略尝试使用其内部逻辑比较两个分区重新分配。如果重新分配等同于,那么它将按顺序传递给下一个策略,以确定顺序等。
11.4.3. intra-broker 磁盘平衡 复制链接链接已复制到粘贴板!
在同一代理的磁盘间移动大量数据比单独的代理的影响要小得多。如果您运行一个 Kafka 部署,它将 JBOD 存储与同一代理中的多个磁盘搭配使用,Cruise Control 可以在磁盘之间平衡分区。
如果您将 JBOD 存储与单一磁盘配合使用,在代理磁盘平衡中,则会导致一个有 0 分区移动的成成,因为没有磁盘之间的平衡。
要执行内部磁盘平衡,请在 KafkaRebalance.spec
下将 rebalanceDisk
设置为 true
。当将 rebalanceDisk
设置为 true
时,不要在 KafkaRebalance.spec
中设置 goals
字段,因为 Cruise Control 会自动设置 intra-broker 目标并忽略 inter-broker 目标。Cruise Control 不会同时执行 inter-broker 和 intra-broker 平衡。
11.4.4. 重新平衡调整选项 复制链接链接已复制到粘贴板!
Cruise Control 提供了几个配置选项,用于调整上述讨论的重新平衡参数。您可以在 使用 Kafka 配置和部署 Cruise Control 或 优化建议 级别时设置这些调整选项:
-
Cruise Control 服务器设置可以在 Kafka.
spec.cruiseControl.config 下的 Kafka
自定义资源中设置。 -
单个重新平衡性能配置可以在
KafkaRebalance.spec
下设置。
下表中总结了相关的配置。
Cruise Control 属性 | KafkaRebalance 属性 | 默认 | 描述 |
---|---|---|---|
|
| 5 | 每个分区重新分配批处理中的最大代理分区移动数 |
|
| 2 | 每个分区重新分配批处理中的最大 intra-broker 分区移动数 |
|
| 1000 | 每个分区重新分配批处理中的最大分区领导更改数 |
|
| null (无限制) | 分配给分区重新分配的带宽(以字节为单位) |
|
|
|
用于决定为生成的提议执行分区重新分配命令的顺序(优先级顺序)的列表。对于 server 设置,使用逗号分隔的字符串以及策略类的完全限定域名(将 |
- |
| false | 启用内部磁盘平衡,在同一代理的磁盘之间平衡磁盘空间利用率。只适用于使用多个磁盘的 JBOD 存储的 Kafka 部署。 |
更改默认设置会影响重新平衡完成所需的时间,以及重新平衡期间 Kafka 集群上的负载。使用较低值可减少负载,但会增加花费的时间,反之亦然。