当前位置: 首页 > 知识库问答 >
问题:

Kafka经纪人的高CPU使用率

华凯捷
2023-03-14

我们正在使用带有 5 个代理的 Apache Kafka 2.2 版本。我们每天收到 50 数百万个事件,但我们达到了高 kafka CPU 使用率。我们使用默认的生产者/消费者/代理设置。

我对表演有一些疑问;

我们有不同的kafka流应用程序,它们进行聚合或连接操作以携带丰富的消息。我们所有的kafka-流应用程序都包含以下设置:

    < li >恰好一次:true < li >最小同步副本:3 < li >复制因子:3 < li >主题分区:~50-~100(拓扑不同)

当然,拓扑可能有内部主题。我们正在将我们的工作机器扩展到至少5个应用程序。因此,大多数时候,每个实例都为一个分区策略寻找一个线程。

然而,除了拓扑优化,我们还能在默认设置上做些什么吗?

除了kafka流应用程序之外,我们还使用spring-kafka生产者/消费者。但正如我所说,我们使用的是默认设置。例如,我们在制作方一个接一个地制作事件。

我们的吞吐量不够快,我们的cpu使用率很高。如果我们关闭一些kafka流应用程序,经纪人的负载会减少。所以我的问题是;

复制因子为3的同步副本是否会对代理施加过大的负载?我不想在prod环境中丢失或重复数据消除我的消息,因此我的流应用程序必须包含exaclty,一旦为true,但spring应用程序在没有kafka流的情况下运行良好。

我想降低系统中代理的整体cpu使用率。

如果我在生成器端使用batch producer,减少我的容错工作线程的最小同步副本,我的cpu使用率会降低吗?

什么会导致经纪人的高cpu使用率?

共有1个答案

上官凯歌
2023-03-14

您需要提供更多关于您的拓扑/集群的详细信息。比如说;

  • 你看到所有经纪人或少数经纪人的CPU峰值吗?这可能会让你更容易找到主要问题
  • 是否启用加密?CPU使用率高的主要原因通常是加密。也许你的一些应用程序使用加密通道,而有些应用程序不使用
  • 检查流应用程序拓扑。错误的密钥使用可能会导致过度的重新分区,这会使用Kafka中的重新分区主题,并可能导致代理端和应用程序端的CPU使用率高
  • 您的消费者是否经常关闭/重新启动或无法在max.poll.interval内完成工作。毫秒?如果是这样的话,他们将经常进行再平衡,经纪人在再平衡操作中确实有一份工作,尽管这是一份很小的工作,如果你有很多团队一直在进行再平衡的话,这项工作可能会大大增加
  • 除非您与生产商使用同步发送(这会显著影响吞吐量),否则它们将被成批发送。但您可以尝试使用linger。ms配置。这可能会影响生产商的产量

我不认为replication.factor和min.insync.replicas配置起着重要的作用,但在不知道所有变量的情况下,还不能肯定地说什么。

此外,如果您安装了监控工具,您应该检查它们,看看是否有任何异常。

 类似资料:
  • 我正在尝试仅为代理间kerberos配置Kafka代理。然而,由于它似乎也想通过Kerberos连接到Zookeeper,所以我似乎总是遇到错误。我目前还没有设置任何Zookeeper键。 我的Kafka代理 JAAS 配置如下: 服务器属性 我用上述配置得到的错误如下: 换句话说,我只想要经纪人到经纪人的 kerberos 和经纪人 - 动物园管理员的普通SASL_SSL。这可能吗?

  • 我在Windows子系统Linux上安装了kafka,并开始使用命令服务启动,所有服务都已启动。现在,当我尝试从Windows运行我的kafka-spring应用程序时,它显示以下错误:- 无法建立与节点-1(localhost/127.0.0.1:9092)的连接。经纪人可能不可用。 我的服务器属性是:- 我哪里出错了???

  • 在Flink中,我执行以下代码: 我推出3次同样的工作。 如果我用一个代理执行这段代码,它工作得很好,但是用3个broke(在3个不同的机器上)只读取一个分区。 null

  • 我知道生产者/消费者需要与经纪人交谈以了解分区的领导者。经纪人与zk交谈以告诉他们加入了集群。 是真的吗 经纪人从zk知道谁是给定分区的负责人 zk发现经纪人离开/死亡。然后重新选举领导人,并向所有经纪人发送新的领导人信息 问题: 为什么我们需要经纪人相互沟通?这只是为了让tehy可以移动分区,或者他们也可以互相查询元数据。如果是这样,元数据交换的例子是什么

  • 我有两个< code>kafka 0.10.1的代理集群,之前在我的开发服务器上正确运行< code>zookeeper 3.3.6。 我最近尝试将broker版本升级到最新的,但没有开始。配置没有太大变化 谁能告诉我可能会出什么问题吗。为什么经纪人没有起步? 已更改服务器。代理服务器1上的属性 已更改代理服务器2上的server.properties 注意: 1.Zookeeper正在两台服务器

  • 我试图连接到Kafka服务器使用SpringKafka客户端 我正在使用logback。xml。下面是配置。在测试之前,我对Kafka主机和端口进行了硬编码。相同的代码和配置适用于其中一个环境。