代码之家  ›  专栏  ›  技术社区  ›  kentor

CPU分析kafka代理

  •  0
  • kentor  · 技术社区  · 7 年前

    我负责操作两个kafka集群(一个用于prod,另一个用于我们的开发环境)。该设置基本相似,但开发环境没有SASL/SSL设置,只使用4个代理,而不是8个代理。每个代理被分配到一个专用的google kubernetes节点,该节点具有4个vCPU和26GB RAM。

    在我们的开发环境中,我们每秒大约有1000条消息,4个代理中的每一个都相当一致地使用4个可用CPU核中的3个(75%的CPU使用率)。

    在我们的prod环境中,我们每秒收到约1500条消息,CPU使用率也是4核中的3核。

    CPU使用率似乎至少是我们的瓶颈,我想知道如何执行CPU分析,以便我知道到底是什么导致了高CPU使用率。因为它相对一致,我想这可能是我们的快速压缩。

    我对如何调查高cpu使用率的原因以及如何在集群中调整这一点感兴趣。

    • Apache Kafka版本:2.1(CPU负载过去也与Kafka 0.11.x类似)

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

    旁注:我已经确保制作人能够快速压缩他们的消息。我可以访问所有JMX指标,但找不到任何有用的东西来计算CPU使用率。

    我已经在我的普罗米修斯上附加了指标(这也是我获得CPU使用率统计数据的地方)。问题是容器的CPU使用率没有告诉我为什么会这么高。我需要更多的粒度,例如CPU周期花在什么上(压缩?代理通信?sasl/ssl?)。

    0 回复  |  直到 7 年前
        1
  •  9
  •   Amin    7 年前

    如果您可以访问JMX指标,那么您就几乎完成了CPU评测。所有需要做的事情就是安装普罗米修斯和格拉法纳,然后将指标存储在普罗米修斯中,并用格拉法纳监控它们。您可以在中找到完整的步骤 Monitoring Kafka

    Grafana Dashboard for cluster monitoring

    注意:如果您怀疑snappy压缩,可能 this performance test 我可以帮你

    更新:

    Confluent ,大多数CPU使用是由于SSL。

    请注意,如果启用了SSL,则CPU需求可能会显著降低 更高(具体细节取决于CPU类型和JVM

    您应该选择具有多核的现代处理器。常见的 集群使用24核机器。

    如果需要在更快的CPU或更多内核之间进行选择,请选择更多 超过稍快的时钟速度。

    推荐文章