首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kafka代理的高CPU使用率

Kafka代理的高CPU使用率
EN

Stack Overflow用户
提问于 2020-08-01 11:48:56
回答 1查看 3.4K关注 0票数 0

我们使用ApacheKafka2.2版本与5个代理。我们每天得到5000万个事件,但我们正在达到高卡夫卡cpu使用率。我们正在使用默认的生产者/消费者/代理设置。

我对演出有一些疑问;

我们有不同的kafka流应用程序,它们进行聚合,或者加入操作来传递丰富的消息。我们所有的kafka流应用程序都由以下设置组成:

  • exactly-once:true
  • min-in-sync replicas:3
  • replication因子:3
  • 主题分区:~50~100(拓扑不同)

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

但是,除了拓扑优化之外,我们还可以在默认设置上做些什么吗?

除了卡夫卡流应用程序,我们正在使用spring生产者/消费者。但是就像我说过的,我们使用的是默认设置。例如,我们是一个接一个地生产事件的生产者一方。

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

如果同步副本是正确的,复制因子为3,那么是否对代理施加了太多的负载?我不想丢失或复制prod环境上的消息,所以我的流应用程序必须包含精确的--一旦为真,但是spring应用程序在没有kafka流的情况下做得很好。

我希望减少系统中代理的总体cpu使用量。

如果我在生产者端使用批处理生成器,减少可容错工作人员的最小同步副本,我的cpu使用率会减少吗?

我想不出可选的办法。任何想法都会帮助我,为什么我的经纪人CPU使用率非常高,像%80-90天时间。

是什么原因导致代理的cpu使用率过高?

EN

回答 1

Stack Overflow用户

发布于 2020-08-01 17:04:39

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

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63204859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档