7.4. 重新平衡性能调整概述


您可以为集群重新平衡调整几个性能调优选项。这些选项控制在重新平衡中分区副本和领导移动的方式,以及分配给重新平衡操作的带宽。

7.4.1. 分区重新分配命令

优化 建议由单独的分区重新分配命令组成。当您 批准 提议时,Cruise Control 服务器会将这些命令应用到 Kafka 集群。

分区重新分配命令由以下一种操作组成:

  • 分区移动:传输分区副本及其数据到新位置。分区移动可以采用以下两种形式之一:

    • inter-broker move:分区副本被移到不同代理上的日志目录中。
    • intra-broker 移动:分区副本被移到同一代理的不同日志目录中。
  • 领导移动:这涉及切换分区副本的领导机。

将控制问题分区重新分配给批处理中的 Kafka 集群。重新平衡期间集群的性能会受到每个批处理中包含的每种移动次数的影响。

7.4.2. 副本移动策略

集群重新平衡性能也会受到 副本移动策略 影响,该策略应用于分区重新分配命令的批处理。默认情况下,Cruise Control 使用 BaseReplicaMovementStrategy,它只是按照生成的顺序应用这些命令。但是,如果提早出现一些非常大的分区重新分配,这个策略可能会减慢其他重新分配的应用程序。

Cruise Control 提供了四个备用副本移动策略,可用于优化提议:

  • PrioritizeSmallReplicaMovementStrategy: Order 重新分配以升序大小。
  • PrioritizeLargeReplicaMovementStrategy: order 重新分配以降序排列。
  • PostponeUrpReplicaMovementStrategy: Prioritize 重新分配没有同步副本的分区副本。
  • PrioritizeMinIsrWithOfflineReplicasStrategy: Prioritizements with (At/Under) MinISR 分区带有离线副本。只有在 Kafka 自定义资源的 spec 中被设置为 true 时,只有在 cruiseControl.config.concurrency.adjuster.min.isr.check.enabled 时,此策略才能正常工作。

这些策略可以配置为序列。第一个策略尝试使用其内部逻辑比较两个分区重新分配。如果重新分配项同等,则它将按顺序传递到下一策略,以确定顺序顺序等。

7.4.3. in-broker 磁盘平衡

在同一代理上的磁盘间移动大量数据比独立的代理之间的影响要小。如果您正在运行一个 Kafka 部署,它使用带有同一代理的多个磁盘的 JBOD 存储,Cruise Control 可以在磁盘间平衡分区。

注意

如果您将 JBOD 存储与单一磁盘配合使用,在代理磁盘平衡中,则会导致一个有 0 分区移动的成成,因为没有磁盘之间的平衡。

要执行 intra-broker 磁盘平衡,请在 KafkaRebalance.spec 下将 重新平衡Disk 设置为 true。当将 rebalanceDisk 设置为 true 时,不要在 KafkaRebalance.spec 中设置 goals 字段,因为 Cruise Control 会自动设置 intra-broker 目标并忽略 inter-broker 目标。Cruise Control 不同时执行 inter-broker 和 in-broker 平衡。

7.4.4. 重新平衡调整选项

Cruise Control 提供了多个配置选项来调优上面讨论的重新平衡参数。在使用 Kafka 配置和部署 Cruise 控制 时,您可以设置这些调整选项,或 优化概率 级别:

  • Cruise Control server 设置可以在 Kafka. spec.cruiseControl.config 下的 Kafka 自定义资源中设置。
  • 单个重新平衡性能配置可以在 KafkaRebalance.spec 下设置。

下表总结了相关的配置。

Expand
表 7.2. 重新平衡性能调整配置
Cruise Control 属性KafkaRebalance 属性默认Description

num.concurrent.partition.movements.per.broker

concurrentPartitionMovementsPerBroker

5

每个分区重新分配批量的最大代理分区移动数

num.concurrent.intra.broker.partition.movements

concurrentIntraBrokerPartitionMovements

2

每个分区重新分配批量的最大内代理分区移动数

num.concurrent.leader.movements

concurrentLeaderMovements

1000

每个分区重新分配批量的分区领导更改的最大数量

default.replication.throttle

replicationThrottle

null (无限制)

分配给分区的带宽(以字节/秒为单位)

default.replica.movement.strategies

replicaMovementStrategies

BaseReplicaMovementStrategy

用于决定针对生成的提议执行分区重新分配命令的策略列表(按优先级顺序)。对于 server 设置,使用具有策略类完全限定名称(add com.linkedin.kafka.cruisecontrol.executor.strategy. strategy)的逗号分隔列表。对于 KafkaRebalance 资源设置,请使用策略类名称的 YAML 数组。

-

rebalanceDisk

false

启用 in-broker 磁盘平衡,用于平衡同一代理上磁盘之间的磁盘空间利用率。只适用于使用多个磁盘的 JBOD 存储的 Kafka 部署。

更改默认设置会影响重新平衡完成所需的时间,并在重新平衡期间在 Kafka 集群上放置负载。使用较低值可减少负载,但会增加所需的时间,反之亦然。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat