【问题标题】:How to find the root cause of high CPU usage of Kafka brokers?如何找到 Kafka broker 高 CPU 使用率的根本原因?
【发布时间】:2019-03-04 15:48:46
【问题描述】:

我负责操作两个 kafka 集群(一个用于生产环境,一个用于我们的开发环境)。设置大多相似,但开发环境没有 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 内核一致使用

  • Prod 集群(Snappy 压缩、SASL/SSL、8 个代理):每秒 1500 条消息,3 个 CPU 内核一致使用

旁注:我已经确保生产者能够快速压缩生成他们的消息。我可以访问所有 J​​MX 指标,但找不到任何有用的信息来计算 CPU 使用率。

我的 prometheus 已经附加了指标(这也是我从中获取 CPU 使用率统计信息的地方)。问题是容器的 CPU 使用率并没有告诉我为什么它这么高。我需要更多的粒度e。 G。 CPU 周期花费在哪些方面(压缩?代理通信?sasl/ssl?)。

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    如果您可以访问 JMX 指标,那么您对 ​​CPU 的分析就差不多完成了。所要做的就是安装 Prometheus 和 Grafana,然后将指标存储在 Prometheus 中并使用 Grafana 监控它们。你可以在Monitoring Kafka找到完整的步骤

    注意:如果您对 snappy 压缩有疑问,也许this performance test 可以帮助您

    更新:

    基于Confluent,大部分CPU使用是因为SSL。

    请注意,如果启用 SSL,CPU 需求可能会显着增加 更高(具体细节取决于 CPU 类型和 JVM 实施)。

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

    如果您需要在更快的 CPU 或更多内核之间进行选择,请选择更多 核心。多核提供的额外并发将远远 胜过稍快的时钟速度。

    【讨论】:

    • 实际上似乎 SSL/SASL 不是原因,因为如上所述,我的两个集群之一没有启用 SASL/SSL,但 CPU 使用率仍然很高。根据 confluent 给出的硬件建议,我认为 CPU 使用率可能是正常的。
    • 你能找出原因吗?我们最近升级到 Kafka 2.1 并面临类似的问题。整个队列的 25-40% 运行在高 CPU 上,大约在 80-90% 之间,而队列的其余部分在 35-50% 之间平稳运行
    • 不,我还没弄明白。老实说,Kafka 0.11 没有区别。和 2.2 对我们来说。我们运行 8 个代理,所有主题都经过 snappy 压缩(生产者也使用 snappy 压缩)。每个代理使用 3-4 核 CPU 使用率,消息吞吐量为 2-3k 消息/秒集群范围。我们认为 snappy 压缩是 CPU 使用率高的原因,因为它必须在再次压缩之前解压缩我们的生产者发送的所有消息(校验和原因)。
    • 更新:大量请求加上大量分区似乎产生了重大影响。使用 Kafka 2.6,CPU 使用率降低了 15-20%。我们有很多客户,但吞吐量很低。我们总共处理约 1-5M API 请求/秒。看起来这需要一些 CPU
    猜你喜欢
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2020-11-22
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多