繁体   English   中英

Kafka生产者和经纪人吞吐量限制

[英]Kafka Producer and Broker Throughput Limitations

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

我了解从卡夫卡生产者到卡夫卡经纪人的数据流率受到生产者网络带宽的限制。

假设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左右(接近其上限)。

谢谢

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

有几件事情要考虑:

  1. 实例和卷都有单独的磁盘和网络限制。
  2. 您必须考虑复制。 如果您的RF = 2,则假设节点之间的写入分布均匀,则单个节点占用的写入流量为2 *(PRODUCER_TRAFFIC)/(PARTITION_COUNT)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM