【发布时间】:2018-03-28 10:48:34
【问题描述】:
我们执行了 kafka 基准测试 (BM) 以确定给定 kafka 代理和磁盘可用的最大吞吐量 (TP)。
kafka 代理设置(机器规格和磁盘):
3 个 kafka 代理,Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz,8 核。
每个代理都有 sdb 设备安装到 /var/kafka,大小为 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
compression.type=lz4
acks=1
kafka 主题配置
100 个分区,在所有 3 个代理之间保持平衡
复制因子 = 3
如何执行 kafka BM
我们使用专有的 KakkaInjector 工具消息注入消息。
消息的大小约为 1K,并在连续 2.5 小时内(均等地)发送到所有 100 个分区。
BM 的目标是查看在不超过 ~80%-85% IO 利用率% 的情况下可以实现的最大 TP。
kafka BM 结果(吞吐量和 IO 利用率%)
因此,所有 3 个代理的 IO 利用率约为 85%,消息/秒的速率为读取 550,000 条消息和写入 550,000 条消息。
如果我们查看以 kB 为单位的 TP,那么所有 3 个代理都达到了 380 rKB/s 和 495 wKB/s 的总和。
我的问题
这些结果是通过 3 个 kafka 代理 X 16 个 SAS 磁盘 X 1TB 实现的。我们希望达到约 150 万条消息/秒,而不是当前的 55 万条消息/秒。
所以我的问题是:
向每个代理添加更多磁盘是否会线性增加正在读取和写入的 msg 数量?
添加更多具有相同磁盘设置的代理是否会线性增加读取和写入的 msg 数量?
如果我们将 RAID 从 RAID-10 更改为 RAID-0,TP 会增加 2 倍吗?
如果我们将磁盘从 SAS 更改为 SSD 会增加 TP 吗?
【问题讨论】: