最近在搭一套日志收集系统,基于 flume。 于是,SpoolDir+memoryChannel+kafkaSink 的搭配,做一下简单的性能测试。
发现 events 数只有 6000 每秒,有些低。
将 kafkaSink 改为 nullSink 可以达到 80w/s
察觉可能是 kafka 的问题,但是不知道怎么优化
有几点猜测:
各位看官,有什么优化建议。请无情的地砸向我吧
1
Lax 2017-12-24 23:39:46 +08:00
bash 分片、batch 大小、网络延时、对端节点数 /进程数都可能影响性能。
理论上也不会达到 nullsink 的吞吐率,最大吞吐率、带宽、延时有个公式能算出来。 贴一下你现在的 sink 配置吧,还有计算配置参数需要的基本信息比如 sink 前后端各有多少台节点。 |
2
15hop OP @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 ``` |
3
15hop OP 上浮一下
|