测试环境如下:
CPU: Intel L5640 2.26 GHz 6 cores * 2 EA
Memory: SAMSUNG PC3-10600R 4 GB * 4 EA
HDD: TOSHIBA SAS 10,000 RPM 300 GB * 6 EA
OS: CentOS release 6.6 (Final)
Logstash 2.3.4
我使用了以下配置:
input {
kafka {
zk_connect => '1.2.3.4:2181'
topic_id => 'some-log'
consumer_threads => 1
}
}
filter {
metrics {
meter => "events"
add_tag => "metric"
}
}
output {
if "metric" in [tags] {
stdout {
codec => line {
format => "Count: %{[events][count]}"
}
}
}
}
结果如下:
./bin/logstash -f some-log-kafka.conf
Settings: Default pipeline workers: 24
Pipeline main started
Count: 9614
Count: 23080
Count: 37087
Count: 50815
Count: 64517
Count: 78296
Count: 91977
Count: 105990
违约 flush_interval
是5秒,所以看起来大约是每5秒14k(每秒2.8k)。
与 consumer_threads
设置为10,我得到以下结果:
./bin/logstash -f impression-log-kafka.conf
Settings: Default pipeline workers: 24
Pipeline main started
Count: 9599
Count: 23254
Count: 37253
Count: 51029
Count: 64881
Count: 78868
Count: 92663
Count: 106267
看起来越来越多了 consumer_threads
没什么区别。
基于我简单的不可操作的消费者基准,我预计大约3万,至少10万,但它只是预期性能的1/10。
如何提高其性能?
附加说明:对于kafka客户机java库,我使用的是引导服务器,而对于logstash kafka输入插件,我使用的是zookeeper(引导服务器没有选项)。我不确定这是否会导致巨大的差异。
暂无答案!
目前还没有任何答案,快来回答吧!