Kafka 启用压缩后吞吐量提升很大

2018-01-25 17:54:33 +08:00
 kkfnui

今天部署了个 3 broker 的 kafka 集群。 做了下基准的压力测试,刚开始的时候没有使用任何压缩策略。

发现吞吐量真是渣的不行,最多就 4~5w message/s。 看到网上有人压测都是上百万的,感觉是哪里不对劲(当然机器配置也不好,虚拟机 6 核 2394 MHZ,16G 内存

下面的测试都是 3 个分区,3 个副本的 topic

未启用压缩

1000000 records sent, 28302.954828 records/sec (55.28 MB/sec),
487.26 ms avg latency, 1628.00 ms max latency,
11 ms 50th, 1500 ms 95th, 1551 ms 99th, 1603 ms 99.9th.

使用 lz4 压缩算法

1000000 records sent, 113237.458951 records/sec (221.17 MB/sec),
301.43 ms avg latency, 1224.00 ms max latency,
221 ms 50th, 995 ms 95th, 1128 ms 99th, 1173 ms 99.9th.

使用官方的基准测试工具测试的:

./kafka-producer-perf-test.sh  --num-records 1000000 \
--producer.config  ../config/producer.properties \
--topic test-3p-3r-lz4 --record-size 2048 --throughput 150000

现在对 kafka 的原理还没有深入了解。实践后,发现压缩对吞吐量提升出乎意料啊!使用压缩算法后:

  1. 整体吞吐量提高了
  2. 延迟降低的并不多

第二点现在不知道瓶颈在哪里,也许是内存。现在内存的配置是参考 LinkedIn 给出的实践配置:

KAFKA_HEAP_OPTS="-Xmx12g -Xms12g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"

监控 GC 日志,也没有发现 GC 有特别耗时的情况。

8229 次点击
所在节点    Kafka
1 条回复
kkfnui
2018-01-25 18:12:07 +08:00
刚重新看了下日志,启用压缩有吞吐量已经达到 250MB/s 左右了。
延迟的问题是由于网络带宽导致的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/425948

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX