【问题标题】:Throughput Parameter in ProducerPerformance Tool in KafkaKafka ProducerPerformance 工具中的吞吐量参数
【发布时间】:2017-12-30 23:25:13
【问题描述】:

我正在尝试确定在 AWS 上的示例 Kafka 集群设置中可以实现的最大吞吐量。我在两个 EC2 实例上配置了 2 个 Kafka 代理,并尝试使用 ProducerPerformance Tool 来监控吞吐量,如下所示。

./bin/kafka-run-class.sh org.apache.kafka.tools.ProducerPerformance --throughput=10000--topic=TOPIC--num-records=50000000 --record-size=200 --producer -props bootstrap.servers=SERVERS buffer.memory=67108864 batch.size=64000

如果您能帮助我澄清以下问题,我将不胜感激。

  1. 吞吐量参数是什么意思?

关于我找到的文档 这条信息 -- 将最大消息吞吐量限制为大约 THROUGHPUT 个消息/秒

但我也注意到 -1 作为参数传递给这个 --throughput。(例如这里 - https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines

  1. 当我们运行脚本时,我们会得到一些示例输出,例如 821,557 条记录/秒(78.3 MB/秒)。这个值与我们之前设置的吞吐量参数有什么关系?

谢谢。

【问题讨论】:

    标签: apache-kafka kafka-producer-api


    【解决方案1】:
    1. 如果 throughput 设置为 -1,Kafka 不会对 perf 工具做任何限制。相反,如果已设置,Kafka 会尽最大努力使 TPS 尽可能接近此目标。假设吞吐量设置为 1000,那么 perf 工具大约每秒发送 1000 条记录。

    2. 在吞吐量为 -1 的测试中,测试显示单个生产者实例每秒可以发送 821,557 条记录。根据带宽资源和平均记录大小,您可能会找出瓶颈。

    【讨论】:

    • 感谢您的及时回复。那么,如果我们为了简单而忘记批量大小和消息压缩等,假设上面的脚本在给定的硬件配置下提供了可能的最大吞吐量是否正确?假设只有一个生产者和一个消费者,我们如何找到给定硬件可达到的最大吞吐量?
    • 理论上单机客户端的TPS不会超过带宽。如果性能结果远小于带宽,还有改进的余地。
    • 据我了解,使用 -1 表示吞吐量,我们可以获得单个生产者向代理生成记录的最大速率,而不会受到限制。现在为吞吐量参数设置一个值(例如:10000)有什么好处?这不正是我们打算通过运行 perf 工具找到的值吗?
    猜你喜欢
    • 2018-01-01
    • 2018-08-03
    • 1970-01-01
    • 2019-06-14
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    相关资源
    最近更新 更多