相关疑难解决方法(0)

如何找到Kafka代理高CPU使用率的根本原因?

我负责操作两个kafka集群(一个用于prod,一个用于我们的dev环境)。设置大部分是类似的,但是开发环境没有SASL / SSL设置,仅使用4个代理而不是8个代理。每个代理都分配给具有4个vCPU和26GB RAM的专用google kubernetes节点。

在我们的开发环境中,我们每秒大约接收1000条消息,并且这4个代理中的每个代理都使用4个可用CPU内核中的3个(始终占75%的CPU利用率)。

在我们的生产环境中,我们每秒获得约1500条消息,并且CPU使用率也是4个内核中的3个。

看来,CPU使用率至少是我们的瓶颈,我想知道如何执行CPU配置文件,以便我确切地知道造成CPU使用率高的原因。由于它是相对一致的,我猜可能是我们的快速压缩。

我对所有想法都感兴趣,我该如何调查CPU使用率高的原因以及如何在集群中进行调整。

  • Apache Kafka版本:2.1(CPU负载以前在Kafka 0.11.x上也很相似)

  • 开发集群(快速压缩,无SASL / SSL,4个代理):每秒1000条消息,3个CPU核心的使用率一致

  • 产品集群(Snappy压缩,SASL / SSL,8个代理):每秒1500条消息,使用3个CPU核心

旁注:我已经确保生产者快速生成压缩的消息。我可以访问所有JMX指标,但是找不到任何有用的方法来弄清楚CPU的使用情况。

我已经将度量标准附加到了我的方法(这也是我从中获得CPU使用情况统计信息的地方)。问题在于容器的CPU使用率并没有告诉我为什么它这么高。我需要更多的粒度,例如花在哪些CPU周期上(压缩?代理通信?sasl / ssl?)。

apache-kafka

6
推荐指数
1
解决办法
2046
查看次数

标签 统计

apache-kafka ×1