Kafka性能受到多个方面因素的影响,机器性能、topic的分区大小、是否采用sasl连接等等。
方案设计
在使用过程中,我们重点关注的是除机器性能之外的因素,所以在设计测试方案时,可以设计以下几种场景。
- 是否采用sasl连接
- ACK为1或者-1
- topic分区数
测试脚本
可以采用Kafka自带的测试脚本kafka-producer-perf-test.sh和kafka-consumer-perf-test.sh。
测试命令:
- afka-producer-perf-test.sh --producer-props bootstrap.servers="10.0.0.3:9092,10.0.0.4:9092,10.0.0.5:9092" acks=1 batch.size=16384 --topic test --num-records 2000000 --record-size 1024 --throughput -1
- kafka-consumer-perf-test.sh --broker-list="10.0.0.3:9092,10.0.0.4:9092,10.0.0.5:9092" --topic test --group group1 --messages 50000000 --threads 10 --timeout 600000
注意事项
- 压测时注意数据的大小,不要超过磁盘空间大小,否则可能会导致宕机。
- 压测时可以使用nmon工具,拉取机器的状态信息,方便事后分析。