flume events 数 6000/s 正常吗

2017-12-24 21:45:38 +08:00
 15hop

最近在搭一套日志收集系统,基于 flume。 于是,SpoolDir+memoryChannel+kafkaSink 的搭配,做一下简单的性能测试。

发现 events 数只有 6000 每秒,有些低。

将 kafkaSink 改为 nullSink 可以达到 80w/s

察觉可能是 kafka 的问题,但是不知道怎么优化

有几点猜测:

各位看官,有什么优化建议。请无情的地砸向我吧

3656 次点击
所在节点    Hadoop
4 条回复
Lax
2017-12-24 23:39:46 +08:00
bash 分片、batch 大小、网络延时、对端节点数 /进程数都可能影响性能。
理论上也不会达到 nullsink 的吞吐率,最大吞吐率、带宽、延时有个公式能算出来。

贴一下你现在的 sink 配置吧,还有计算配置参数需要的基本信息比如 sink 前后端各有多少台节点。
15hop
2017-12-25 13:27:46 +08:00
@Lax
这是 sink 配置。有 3 台的 kafka。还有就是只为了测试,所以就搭了一台 flume。上面的数据都是一台 flume 的。
![]( )

topic msg3 的 partition = 3, replications = 2
```
# Each sink's type must be defined
#agent.sinks.s1.type = null
agent.sinks.s1.type = org.apache.flume.sink.kafka.KafkaSink
agent.sinks.s1.kafka.bootstrap.servers = server1:9092,server2:9093,server3:9094
agent.sinks.s1.kafka.topic = msg3
agent.sinks.s1.kafka.flumeBatchSize = 500
agent.sinks.s1.kafka.producer.acks = 1
agent.sinks.s1.kafka.producer.linger.ms = 1
agent.sinks.s1.kafka.producer.compression.type = snappy
agent.sinks.s1.kafka.allowTopicOverride = false
```
15hop
2017-12-25 17:35:15 +08:00
上浮一下
15hop
2017-12-26 21:31:11 +08:00
@15hop
自问自答一下。单台 flume + 5 台 kafka,producer 输入到的 topic 有 8 个 partitions:
ack = 1 的情况下,7w+ qps
ack = 0 的情况下,10w+ qps

之前只有 6000+ 的原因是,将 debug 信息输出到 console。每个 massage 写入 kafka 的回调都要输出 debug log。对性能影响极大。关闭后,性能直线上升。

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

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

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

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

© 2021 V2EX