8.4. 重新平衡性能调优概述

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

分区重新分配命令

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

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

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

    • Broker 内部移动:分区副本移到不同代理中的日志目录中。
    • Broker 内部移动:分区副本会移到同一代理的不同日志目录中。
  • 领导运动:这包括切换分区副本的领导机。

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

副本移动策略

集群重新平衡性能还受到应用于分区重新分配命令 的副本移动策略 的影响。默认情况下,Cruise Control 使用 BaseReplicaMovementStrategy,它只按照生成命令的顺序应用它们。但是,如果在建议早期存在一些非常大的分区重新分配,此策略可能会减慢其他重新分配的应用速度。

海军控件提供了三种备选副本移动策略,可用于优化调整:

  • PrioritizeSmallReplicaMovementStrategy:按最大大小排序重新分配.
  • PrioritizeLargeReplicaMovementStrategy:顺序重新分配按大小降序排列.
  • PostponeUrpReplicaMovementStrategy:优先分配没有同步副本的分区副本。

这些策略可以配置为序列。第一种策略尝试使用其内部逻辑比较两个分区重新分配。如果重新分配是等效的,那么它会将它们传递给序列中的下一个策略,以确定顺序,以此类推。

重新平衡调优选项

cruise Control 提供多个配置选项来调整上面讨论的重新平衡参数。您可以在 Cruise Control 服务器优化建议 级别设置这些调整选项:

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

相关配置总结如下:

服务器和 KafkaRebalance 配置描述默认值

num.concurrent.partition.movements.per.broker

每个分区重新分配批次中broker 分区移动的最大数量

5

concurrentPartitionMovementsPerBroker

num.concurrent.intra.broker.partition.movements

每个分区重新分配批次中broker 分区移动的最大数量

2

concurrentIntraBrokerPartitionMovements

num.concurrent.leader.movements

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

1000

concurrentLeaderMovements

default.replication.throttle

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

无限制

replicationThrottle

default.replica.movement.strategies

用于确定执行分区重新分配命令的顺序的策略列表(按优先级顺序排列)。

对于 server 设置,使用逗号分隔的字符串以及策略类的完全限定名称(在每个类名称 的开头添加 com.linkedin.kafka.cruisecontrol.executor.strategy )。对于 KafkaRebalance 资源设置,请使用策略类名称的 YAML 数组。

BaseReplicaMovementStrategy

replicaMovementStrategies

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