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博客

相关推荐
Database_Cool_35 分钟前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
肥胖小羊10 小时前
解决企业微信 AccessToken 刷新并发冲突的分布式锁机制实践
分布式·企业微信
AI人工智能+电脑小能手11 小时前
【大白话说Java面试题 第192题】【08_Kafka篇】第8题:死信队列是什么?延时队列是什么?
java·kafka·消息队列·死信队列·延时队列
AI人工智能+电脑小能手1 天前
【大白话说Java面试题 第190题】【08_Kafka篇】第6题:消息队列有什么作用?
java·kafka·消息队列·系统设计·分布式架构
风中凌乱1 天前
kafka新版本集群的安装与部署
分布式·kafka
SLD_Allen1 天前
大规模分布式AI训练基础设施
人工智能·分布式·模型训练
abcy0712131 天前
kafka消息丢失与消息重复消费
kafka
富士康质检员张全蛋1 天前
Kafka的操作-消费的详情
分布式·kafka
昕光xg2 天前
Istio笔记04-基于Jaeger的分布式链路追踪
笔记·分布式·istio
Benjamin℡2 天前
Zookeeper(一)搭建单体和集群服务以及Zookeeper客户端
分布式·zookeeper·云原生