吞吐量—kafka io利用率,具有更多磁盘和代理

yvfmudvl  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(417)

我们执行了kafka基准测试(bm),以计算给定kafka代理和磁盘的最大吞吐量(tp)。
kafka brokers设置(机器规格和磁盘):
3个Kafka代理,intel(r)xeon(r)cpu e5-2650 v4@2.20ghz,8核。
每个代理都有安装在/var/kafka上的sdb设备,大小为14.6t。
sdb设备由raid-10中的16个sas磁盘~1tb组合而成。这意味着8个磁盘被用作奇偶校验。
Kafka生产者配置:
key=string,value=bytearray
enable.auto.commit=false
buffer.memory=500000000内存
batch.size=262144
retry.backoff.ms=5
linger.ms=20000
重试次数=0
压缩类型=lz4
确认=1
Kafka主题配置
100个分区,在所有3个代理之间平衡
复制因子=3
Kafkabm是如何表演的
我们使用专用的kakkainjector工具注入消息。
消息的大小约为1k,并被发送到所有100个分区(平均)连续2.5个小时。
bm的目标是查看在io利用率不超过80%-85%的情况下可以达到的最大tp是多少。
kafka bm结果(吞吐量和io利用率%)

因此,在所有3个代理的io利用率都达到85%的情况下,每秒读取的邮件数为55万条,写入的邮件数为55万条。
如果我们看一下tp(以kb为单位),那么所有3家经纪商的tota都达到了380rkb/s和495wkb/s。
我的问题
这些结果是通过3个kafka代理x 16个sas磁盘x 1tb实现的。我们希望达到150万条消息/秒,而不是目前的55万条消息/秒。
所以我的问题是:
向每个代理添加更多磁盘是否会线性增加正在读写的msg的数量?
添加更多具有相同磁盘设置的代理是否会线性增加正在读写的msg的数量?
如果我们将raid从raid-10改为raid-0,tp会增加2倍吗?
如果我们将磁盘从sas改为ssd,会增加tp吗?

oewdyzsn

oewdyzsn1#

向每个代理添加更多磁盘是否会线性增加正在读写的msg的数量?
是的,但不总是这样。它取决于磁盘类型和raid方案。如果增加磁盘子系统的iops数,它将对您有所帮助。
现在raid0中有16个磁盘,因此即使在理想情况下,如果再添加2个磁盘,它的工作速度也会稍微快一点,但肯定不会对实现目标产生重大影响。
添加更多具有相同磁盘设置的代理是否会线性增加正在读写的msg的数量?
是的,但不总是这样。您的复制因子为3,这意味着即使您再添加1或2个代理,您的代理中至少有一个将处理比其他代理更多的主题,这意味着它将过载,并且您的应用程序将等待它完成任务。但是,如果你加入n*3个经纪人,这会有帮助。
如果我们将raid从raid-10改为raid-0,tp会增加2倍吗?
不是2倍,但是是的,会比现在快。至少,你会有更多的并行线程。
如果我们将磁盘从sas改为ssd,会增加tp吗?
是的,当然。现在你需要更多的并行iops,ssd会给你。您现在有100个分区,如果您有ssd磁盘,那么您可能可以设置更多分区,这在并行操作中要快得多。

相关问题