Kafka性能测试

kafka是一个大数据消息队列(可以看做为缓存软件)

功能测试:能够读写数据

性能测试:1、测试生产者每秒往kafka写入的最大吞吐量 2、测试消费者每秒从kafka里获取消息最大吞吐量

硬件

3台物理机组成的kafka集群。

内存121G、249G、121G

CPU都是超线程后40核

系统centos7.9

SAS硬盘 500g


看情况加

--command-config /usr/local/service/kafka/config/kafka-client-properties.conf

我是开了kerbers认证的

kafka-client-properties.conf文件内容如下

security.protocol=SASL_PLAINTEXT

sasl.mechanism=GSSAPI

sasl.kerberos.service.name=hadoop

测试1、功能测试,创建一个topic能够往里面写

#创建topic

bin/kafka-topics.sh --bootstrap-server ${brokerIP}:9092 --create --topic test_topic_001 --partitions 5 --replication-factor 2 --command-config /usr/local/service/kafka/config/kafka-client-properties.conf

生产数据到kafka

bin/kafka-console-producer.sh --topic test_topic_001 --bootstrap-server ${brokerIP}:9092 --producer.config /usr/local/service/kafka/config/kafka-client-properties.conf

bin/kafka-console-consumer.sh --topic test_topic_001 --from-beginning --bootstrap-server ${brokerIP}:9092 --consumer.config /usr/local/service/kafka/config/kafka-client-properties.conf

消费者获取kafka数据

功能测试结束


测试2 ,生产者性能测试

先学习下参数

./kafka-producer-perf-test.sh

--topic 指定topic

--num-records 指定生产数据量

--throughput 指定吞吐量 -1为不限定吞吐量

--record-size record数据大小(单位字节数)

--producer-props key=value 指定producer配置

10个分区,3个副本(副本会影响Io和网络延迟,但是模拟实际环境)每条300字节数据,5000万条数据量。

新建topic

/usr/local/service/kafka/bin/kafka-topics.sh --create --topic kindom_test --partitions 10 --replication-factor 3 --bootstrap-server xxx1:9092,xxx2:9092,xxx3:9092 --command-config /usr/local/service/kafka/config/kafka-client-properties.conf

生产数据

bin/kafka-producer-perf-test.sh --topic kindom_test --num-records 50000000 --throughput -1 --record-size 300 --producer-props bootstrap.servers=xxx1:9092,xxx2:9092,xxx3:9092 acks=1 --producer.config /usr/local/service/kafka/config/kafka-client-properties.conf

50000000 records sent, 645103.022953 records/sec (184.57 MB/sec), 149.40 ms avg latency, 969.00 ms max latency, 5 ms 50th, 607 ms 95th, 750 ms 99th, 853 ms 99.9th.

Kafka写入吞吐量

约64万条/秒

平均速率184MB/秒

测试3,消费者性能测试

学习下参数

--broker-list:kafka-broker列表

--topic:指定topic

--fetch-size:指定每次fetch的数据大小(字节数)

--messages:总共要消费的消息数

--threads:线程数

单线程测试,消费5000万数据

bin/kafka-consumer-perf-test.sh --topic kindom_test --threads 1 --messages 50000000 --broker-list xxx1:9092,xxx2:9092,xxx3:9092 --consumer.config /usr/local/service/kafka/config/kafka-client-properties.conf

start.time, end.time, data.consumed.in.MB, MB.sec , data.consumed.in.nMsg, nMsg.sec, rebalance.time.ms, fetch.time.ms, fetch.MB.sec, fetch.nMsg.sec

2025-01-08 17:08:31:958, 2025-01-08 17:09:03:884, 14305.1147, 448.0710 , 50000000, 1566121.6563, 441, 31485, 454.3470, 1588057.8053

消费吞吐量 448mb/s

每秒消费156万条

学习下参数

data.consumed.in.MB:总消费大小(MB)

MB.sec:平均每秒消费(MB/s)

data.consumed.in.nMsg:总消费条数(条)

nMsg.sec:平均每秒消费(条)

rebalance.time.ms:再平衡时间(ms)

fetch.time.ms:fetch平均时间(ms)

fetch.MB.sec:fatch平均大小(MB/s)

fetch.nMsg.sec:fatch平均条数(条)


参考:

性能工具之 Kafka 快速 BenchMark 测试示例_kafka测试工具-CSDN博客

相关推荐
刘某的Cloud2 小时前
rabbitmq常用命令
linux·运维·分布式·rabbitmq·系统
慧一居士6 小时前
Zookeeper HA集群搭建
分布式·zookeeper
冼紫菜6 小时前
[特殊字符] 分布式定时任务调度实战:XXL-JOB工作原理与路由策略详解
分布式
好想有猫猫7 小时前
【Redis】服务端高并发分布式结构演进之路
数据库·c++·redis·分布式·缓存
慧一居士7 小时前
Kafka HA集群配置搭建与SpringBoot使用示例总结
spring boot·后端·kafka
xbhog9 小时前
Java大厂面试突击:从Spring Boot自动配置到Kafka分区策略实战解析
spring boot·kafka·mybatis·java面试·分布式架构
码熔burning11 小时前
【MQ篇】RabbitMQ之消息持久化!
java·分布式·rabbitmq·mq
南客先生11 小时前
深入解析:RocketMQ、RabbitMQ和Kafka的区别与使用场景
java·kafka·消息队列·rabbitmq·rocketmq
Gvemis⁹11 小时前
Spark总结
大数据·分布式·spark
码熔burning12 小时前
【MQ篇】RabbitMQ之消费失败重试!
java·分布式·rabbitmq·mq