搜索

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

download PDF

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

分区重新分配命令

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

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

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

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

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

要配置分区重新分配命令,请参阅 重新平衡调整选项

副本移动策略

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

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

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

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

要配置副本移动策略,请参阅 重新平衡调优选项

重新平衡调优选项

cruise Control 提供多个配置选项来调优重新平衡参数。这些选项使用以下方法设置:

  • cruisecontrol.properties 文件中作为属性默认 Cruise Control 配置
  • 作为 POST 请求中的 /rebalance 端点的参数

下表总结了这两种方法的相关配置。

表 14.3. 重新平衡性能调优配置
属性和请求参数配置描述默认值

num.concurrent.partition.movements.per.broker

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

5

concurrent_partition_movements_per_broker

num.concurrent.intra.broker.partition.movements

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

2

concurrent_intra_broker_partition_movements

num.concurrent.leader.movements

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

1000

concurrent_leader_movements

default.replication.throttle

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

Null(无限制)

replication_throttle

default.replica.movement.strategies

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

对于 属性,使用以逗号分隔的策略类完全限定名称列表(在每个类名称的开头中添加 com.linkedin.kafka.cruisecontrol.executor.strategy. )。

对于 参数,请使用副本移动策略的类名称以逗号分隔的列表。

BaseReplicaMovementStrategy

replica_movement_strategies

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

其它资源

  • Cruise Control Wiki 中的 配置.
  • Cruise Control Wiki 中的 REST API.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.