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/秒)