CKafka Broker CPU 高负载

最近更新时间:2025-11-20 15:16:33

我的收藏

背景

消息中间件在分布式系统中往往扮演着重要的角色,但是在实际的生产环境中,会有很多因素会导致 Broker 节点的 CPU 高负载。以下为一些常见的场景:
高消息吞吐量:如果 CKafka 集群中的某个主题或分区接收到非常高的消息吞吐量,Broker 节点需要处理大量的读写操作。
大量消费者组:如果有大量的消费者组订阅了同一个主题或分区,Broker 需要为每个消费者组处理消息的分发和管理。
复制和同步:如果 CKafka 集群中启用了数据复制和同步功能,Broker 需要处理复制的读写操作和与其他 Broker 之间的同步通信。
压缩和解压缩:如果消息被压缩存储,Broker 需要进行压缩和解压缩操作,可能会占用大量的 CPU 资源。
索引和日志压缩:CKafka 使用索引来加速消息的查找,如果索引过大或需要进行压缩,Broker 需要进行索引维护和压缩操作。
高并发连接:如果有大量的生产者和消费者连接到 Broker,Broker 需要处理连接的建立和维护,增加 CPU 负载。
当 Broker 节点处于 CPU 高负载时,可能会出现如下几种情况:
延迟增加:高 CPU 负载可能导致消息的处理速度变慢,从而增加消息传输和处理延迟。这会影响消费者从 CKafka 中读取消息的速度,可能导致消费者无法及时获取到最新的消息。
吞吐量下降:由于 CPU 资源被高负载的任务占用,CKafka Broker 可能无法处理更多的消息,导致整体吞吐量下降。这会影响生产者发送消息的速度和消费者消费消息的速度。
网络拥塞:高 CPU 负载可能导致 CKafka Broker 无法及时处理网络请求,从而导致网络拥塞。这会影响与其他 Broker 之间的数据复制和同步,可能导致数据复制延迟增加或数据同步不及时。
响应时间增加:由于高 CPU 负载,CKafka Broker 可能无法及时响应来自客户端的请求,导致客户端的等待时间增加。这会影响与 CKafka 集群交互的应用程序的性能和响应时间。
为此智能顾问-混沌演练提供了 CKafka Broker CPU 高负载演练动作,以测试业务系统在面对 CKafka Broker 出现高负载时带来的延迟等非预期情况的应对能力和恢复能力,从而提高业务的安全性和稳定性。

注意事项

实例类型:该动作只对实例类型为 CKafka 专业版实例开放故障注入能力。CKafka 标准版实例暂不支持进行演练。
实例状态:建议进行演练的实例上有真实消息生产与消费流量,主题分区数大于3,便于观察故障对业务的影响效果。(非必须项)

演练准备

准备一台可供演练的 CKafka 专业版实例。

步骤一:创建演练

1. 登录 智能顾问控制台 > 架构治理,进入治理模式,点击混沌演练。(详细创建演练方式请参阅 使用智能顾问进行混沌演练

2. 点击新建演练,填写演练基本信息,完成后点击下一步

3. 在演练实例中,选择中间件- Ckafka,选择后点击搜索添加,添加实例资源。亦可通过架构图添加方式,直接点击架构图上的 Ckafka 资源,选择实例进行添加。

4. 完成添加实例后,点击添加动作,演练动作选择 Broker-CPU 高负载,然后点击下一步

5. 设置动作参数。如选择 CPU 负载率80%,持续时间200s,点击确定



6. 参数配置完成之后,在全局配置中选择执行方式护栏策略,及添加可观测指标。配置完成后,点击提交,即可完成演练任务创建。


步骤二:执行演练

1. 观察演练前实例监控数据,这里可以重点关注高级监控中的监控指标。可前往 CKafka 控制台 查看。



2. 进入演练详情,点击故障动作组中的执行,或下方开始演练,注入故障。

3. 故障注入的同时,可点击日志中的链接前往高级监控观察。



4. 观察到 CPU 利用率达到设定值。



5. 故障注入完成后,点击恢复动作,对注入的故障进行恢复。