kafka性能基准测试使用的是kafka自带的基准工具对Kafka Producer/Consumer进行性能基准测试。
1、kafka生产者性能基准测试
使用Kafka基准测试工具kafka-producer-perf进行测试,工具在kafka/bin目录下,参数如下:
usage: producer-performance [-h] --topic TOPIC --num-records NUM-RECORDS [--payload-delimiter PAYLOAD-DELIMITER] --throughput THROUGHPUT
[--producer-props PROP-NAME=PROP-VALUE [PROP-NAME=PROP-VALUE ...]] [--producer.config CONFIG-FILE] [--print-metrics] [--transactional-id TRANSACTIONAL-ID]
[--transaction-duration-ms TRANSACTION-DURATION] (--record-size RECORD-SIZE | --payload-file PAYLOAD-FILE)
一些必填参数意义:
--topic 指定topic
--num-records 指定生产数据量
--throughtput 指定吞吐量
--record-size record数据大小
--producer-props key=value 指定producer配置
样例: ./kafka-producer-perf-test.sh --topic test --num-records 1000 --throughput -1 --record-size 200 --producer-props bootstrap.servers=10.159.44.146:9092 acks=1
测试性能指标:
平均吞吐量(条/秒)、平均延时(毫秒)、平均吞吐率速度(MB/秒)
知道在哪测试后,下来就是怎么测?
就是把这个命令当作一个接口去测试,测试参数各种组合下的性能情况,即生产者在不同参数情况下的性能。比如:
acks测试,acks可取值1(默认值),0(不考虑消息是否丢失),all(保证消息不丢失)
以acks为变量,测试下性能情况:
2、kafka消费者性能基准测试
测试Kafka Consumer在不同参数下的吞吐量,使用Kafka基准测试工具kafka-consumer-perf进行测试,工具位于kafka/bin目录下,参数如下:
必填参数:
--topic 指定topic
--threads 指定线程数
--messages 指定消费数据条数
--broker-list kafka broker列表
样例: ./kafka-consumer-perf-test.sh --topic test --threads 1 --messages 1000 --broker-list 10.159.44.146:9092
测试性能指标:
平均吞吐量(条/秒)、平均吞吐率速度(MB/秒)