首页 文章

Kafka 制片人和经纪人吞吐量限制

提问于
浏览
1

我在AWS上配置了一个双节点六分区Kafka集群,复制因子为2 . 每个Kafka节点都在由EBS支持的m4.2xlarge EC2实例上运行 .

据我所知,从Kafka 生产环境 商到Kafka经纪人的数据流量受到 生产环境 者网络带宽的限制 .

假设Kafka 生产环境 者和代理之间的网络带宽为1Gbps(约125 MB / s),Kafka代理和存储之间(EC2实例和EBS卷之间)的带宽为1 Gbps .

我使用org.apache.kafka.tools.ProducerPerformance工具来分析性能 .

我观察到,当消息大小为100字节时,单个 生产环境 者可以以大约90 MB / s的速度向代理写入 . (因此网络未饱和)

我还观察到EBS卷的磁盘写入速率约为120 MB / s .

这是90 MB / s是由于某些网络瓶颈还是Kafka的限制? (为简单起见,忘记批量大小和压缩等)

这可能是由于代理和ebs卷之间的带宽限制吗?

我还观察到,当两个 生产环境 者(来自两个独立的机器)生成数据时,一个 生产环境 者的吞吐量降至约60 MB / s .

这可能是什么原因?为什么这个值不能达到90 MB / s?这可能是由于经纪人和ebs卷之间的网络瓶颈?

令我困惑的是,在两种情况下(单个 生产环境 者和两个 生产环境 者),ebs的磁盘写入速率保持在120 MB / s左右(接近其上限) .

谢谢

2 回答

  • 1

    根据我的理解,我遇到了同样的问题,在第一种情况下,一个 生产环境 者正在向两个经纪人发送数据(网络中没有其他内容),所以你得到90 MB / s,每个经纪人的速度为45MB / s(约),但是在第二种情况下,两个 生产环境 者正在向两个经纪人发送数据,因此从 生产环境 者的角度来看,它能够以60 MB / s的速度发送数据,但从经纪人的角度来看,它正在以60MB / s的速度接收数据 . 所以你实际上可以通过kafka推送更多数据 .

  • 1

    有几件事需要考虑:

    • 有适用于实例和卷的单独磁盘和网络限制 .

    • 您必须考虑复制 . 如果RF = 2,则单个节点的写入流量为2 *(PRODUCER_TRAFFIC)/(PARTITION_COUNT),假设跨分区的写入均匀分布 .

相关问题