搜索

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

download PDF

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

分区重新分配命令

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

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

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

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

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

副本移动策略

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

海军控件提供了四种替代副本移动策略,可用于优化调整:

  • PrioritizeSmallReplicaMovementStrategy: Order reassignments按升序大小排序。
  • PrioritizeLargeReplicaMovementStrategy: Order reassignments按降序排列大小。
  • PostponeUrpReplicaMovementStrategy :优先分配没有同步副本的分区副本。
  • PrioritizeMinIsrWithOfflineReplicasStrategy :使用(At/Under)MinISR 分区优先级重新分配带有离线副本。只有 Kafka 自定义资源的 spec 中将 cruiseControl.config.concurrency.adjuster.min.isr.check.enabled 设置为 true 时,此策略才会有效。

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

重新平衡调优选项

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 集群上放置的负载。使用较低值可以减少负载,但会增加所需时间,反之亦然。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.