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

sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true keyTab="/var/krb5kdc/emr.keytab" principal="kafka/1xx.xx.xx.117@TBDS-

xxx";

测试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.msfetch平均时间(ms)

fetch.MB.secfatch平均大小(MB/s)

fetch.nMsg.secfatch平均条数()


参考:

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

关于Kafka性能测试,您可以考虑以下几个方面: 1. 压力测试:通过模拟大量并发请求,测试Kafka在高负载情况下的性能表现。您可以使用工具如Apache JMeter、Kafka Load Testing Tool等来进行压力测试。 2. 吞吐量测试:测试Kafka在单位时间内能够处理的消息数量。可以通过发送大量消息并记录处理时间来计算吞吐量。同时,可以调整Kafka的配置参数,如分区数量、复制因子等,来观察吞吐量的变化。 3. 延迟测试:测试消息从生产者发送到消费者接收的延迟时间。您可以在消息发送和接收的代码中插入时间戳,并计算两者之间的差值来得到延迟时间。可以通过调整Kafka的配置参数、增加消费者数量等方式来观察延迟的变化。 4. 可用性测试:测试Kafka在出现故障时的可用性。可以模拟节点宕机、网络断开等情况,观察Kafka集群的自动故障转移和恢复能力。 在进行性能测试时,建议注意以下几点: - 确保测试环境与生产环境尽可能相似,包括硬件配置、网络环境等。 - 关注测试结果中的指标,如吞吐量、延迟、丢失率等。 - 注意监控Kafka集群的各项指标,如CPU、内存、网络等的使用情况。 - 尝试不同的场景和配置参数,以获得更全面的性能测试结果。 请注意,以上只是一些常见的性能测试方法,具体测试方案需要根据您的需求和环境来进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值