8.3. 优化调整概述
优化建议是建议 更改的总结,这些更改将产生更为均衡的 Kafka 集群,在代理间更均匀地分配分区工作负载。每个优化建议都基于用于生成 目标的一组优化目标,受 代理资源配置容量限制的影响。
KafkaRebalance
自定义资源的 Status.Optimization Result
属性中包含了一个优化建议。提供的信息是完整优化建议摘要。使用摘要决定是否:
- 批准优化建议。这指示 Cruise Control 将提议应用到 Kafka 集群并启动集群重新平衡操作。
- 驳回优化建议。您可以更改优化目标,然后产生另一个建议。
所有优化调整都是 空运行 :您无法在不首先生成优化建议的情况下批准集群重新平衡。对可生成的优化说明数量没有限制。
缓存优化建议
整合控制根据配置的默认 优化目标维护缓存优化建议。从工作负载模型生成的缓存优化建议每 15 分钟更新一次,以反映 Kafka 集群的当前状态。如果您使用默认优化目标生成一个优化建议,Cruise Control 将返回最新的缓存建议。
要更改缓存的优化建议刷新间隔,请编辑 Cruise Control 部署配置中的 proposed.expiration.ms
设置。为快速更改集群考虑一个较短的间隔,尽管这会增加 Cruise Control 服务器上的负载。
优化调整的内容
优化建议由两个主要部分组成:
-
摘要 存储在
KafkaRebalance
。资源的状态中
- 代理负载 存储在 ConfigMap 中,该 ConfigMap 以 JSON 字符串形式包含数据。
摘要概述了建议的群集重新平衡,并指示相关更改的规模。代理负载在建议的重新平衡值前后显示,因此您可以看到对集群中的每个代理的影响。
概述
下表解释了优化建议摘要部分中的属性:
JSON 属性 | 描述 |
---|---|
| 在集群的代理磁盘之间传输的分区副本总数。
重新平衡操作期间的性能影响 :相对较高,但低于 |
| 尚不支持.返回一个空列表。 |
| 在独立代理之间移动的分区副本数。 重新平衡操作期间的性能影响 :相对高. |
| 对生成优化建议之前和之后的 Kafka 集群的整体 平衡性 进行测量。
分数是通过从 100 减去每个违反软目标的
|
|
在同一代理的磁盘之间移动的每个分区副本的大小总和(请参阅
重新平衡操作期间的性能影响 :变量.数量越大,集群重新平衡所需的时间也越长。在相同代理的磁盘之间移动大量数据比不同代理之间的影响小(请参阅 |
| 优化建议所基于的指标窗口数量。 |
|
移动到独立代理的每个分区副本的大小总和(请参阅 同时也是 重新平衡操作期间的性能影响 :变量.数量越大,集群重新平衡所需的时间也越长。 |
|
优化建议涵盖 Kafka 集群中分区的百分比。受 |
|
如果您在 |
| 领导者将切换到不同副本的分区数量。这涉及对 ZooKeeper 配置的更改。 重新平衡操作期间的性能影响 :相对较低的. |
| 尚不支持.返回一个空列表。 |
代理负载
代理负载与 JSON 格式字符串存储在 ConfigMap 中(其名称与 KafkaRebalance 自定义资源相同)。此 JSON 字符串由 JSON 对象组成,其中包含每个代理 ID 的密钥,用于链接到每个代理的多个指标。每个指标包含三个值:第一个是应用优化建议前的指标值,第二个是应用 建议后指标的预期值,第三个是前两个值(早于减后)。
要从 ConfigMap 中提取 JSON 字符串,您可以使用以下命令,该命令使用 jq 命令行 JSON 解析器工具:
oc get configmap MY-REBALANCE -o json | jq '.["data"]["brokerLoad.json"]|fromjson|.'
下表解释了优化建议的代理负载 ConfigMap 中包含的属性:
JSON 属性 | 描述 |
---|---|
| 此代理中作为分区领导的副本数。 |
| 此代理中的副本数。 |
| CPU 利用率为定义容量的百分比。 |
| 磁盘利用率为定义容量的百分比。 |
| 以 MB 为单位的绝对磁盘使用量。 |
| 代理的网络输出率总数。 |
| 此代理上所有分区领导副本的网络输入率。 |
| 此代理上所有后续副本的网络输入率。 |
| 如果这个代理成为当前主机的所有副本的领导,可以实现假设的最大网络输出率。 |