栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

KAFKA压测实录

KAFKA压测实录

1.压测方案 

1.1 压测目的 

1.2 测试范围及方法 

1.2.1 测试范围概述 

1.2.2测试方法 

2. 生产环境压测 

2.1 生产环境集群配置 

2.2 生产环境producer压测脚本 

2.2.1创建TOPIC 

2.2.1.1创建3分区3副本TOPIC prd_pressure_test_3_3partition 

2.2.1.2创建4分区3副本TOPIC prd_pressure_test_4_3partition 

2.2.1.3创建6分区3副本TOPIC prd_pressure_test_6_3partition 

2.2.1.4创建8分区3副本TOPIC prd_pressure_test_8_3partition 

2.2.2 producer压测脚本 

2.2.2.1 3分区3副本100w 2K数据写入压测 

2.2.2.2 4分区3副本100w 2K数据写入压测 

2.2.2.3 6分区3副本100w 2K数据写入压测 

2.2.2.4 8分区3副本100w 2K数据写入压测 

2.3 生产环境producer压测结果 

2.4 生产环境consumer压测脚本 

2.4.1 consumer压测脚本 

2.4.1.1 3分区3副本1线程100w 2K数据读取压测 

2.4.1.2 4分区3副本1线程100w 2K数据读取压测 

2.4.1.3 6分区3副本1线程100w 2K数据读取压测 

2.4.1.4 8分区3副本1线程100w 2K数据读取压测 

2.4.1.5 3分区3副本3线程100w 2K数据读取压测 

2.4.1.6 4分区3副本4线程100w 2K数据读取压测 

2.4.1.7 6分区3副本6线程100w 2K数据读取压测 

2.4.1.8 8分区3副本8线程100w 2K数据读取压测 

2.5 生产环境consumer压测结果 

3. 测试环境压测 

3.1 测试环境集群配置 

3.2测试环境producer压测脚本 

3.2.1 producer压测脚本 

3.2.1.1 3分区3副本100w 2K数据写入压测 

3.3测试环境producer压测结果 

3.4测试环境consumer压测脚本 

3.4.1 consumer压测脚本 

3.4.1.1 3分区3副本1线程100w 2K数据读取压测 

3.4.1.2 3分区3副本3线程100w 2K数据读取压测 

3.5测试环境consumer压测结果 


1.压测方案


1.1 压测目的

本次性能测试在测试环境和正式环境下服务器上Kafka处理MQ消息能力进行压力测试。测试包括对Kafka写入MQ消息和消费MQ消息进行压力测试,根据不同量级的消息处理结果,评估Kafka和Flink的处理性能是否满足项目需求,是否可以满足未来5年的业务增长速率。


1.2 测试范围及方法


1.2.1 测试范围概述

测试使用Kafka自带的测试脚本,通过命令对Kafka发起写入MQ消息和Kafka消费MQ消息的请求。模拟不同数量级的消息队列的消息写入和消费场景,根据Kafka的处理结果,评估Kafka是否满足处理亿级以上的消息的能力。


1.2.2测试方法

测试目的

验证单台服务器上Kafka写入消息和消费消息的能力,根据测试结果评估当前Kafka集群模式是否满足上亿级别的消息处理能力。

测试方法

在服务器上使用Kafka自带的测试脚本,模拟1y级别的消息写入以及读取请求,查看Kafka处理不同数量级的消息数时的处理能力,包括每秒生成消息数、吞吐量、消息延迟时间。

Kafka消息写入创建的topic命名为test_kafka_throughout,Kafka消费读取的topic也是该topic;使用命令发起消费该topic的请求,针对不同的测试指标,本次我们采用固定其他值,动态变化测量值的方式来进行,具体使用脚本为kafka自带的测试脚本,分别为kafka bin目录下的kafka-producer-perf-test.sh和kafka-consumer-perf-test.sh;通过测试来查看Kafka消费不同数量级别的消息时的处理能力。

kafka-producer-perf-test.sh生产者测试参数


2.2 生产环境producer压测脚本


2.2.1创建TOPIC


2.2.1.1创建3分区3副本TOPIC prd_pressure_test_3_3partition

./kafka-topics --create --bootstrap-server bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --replication-factor 3 --partitions 3 --topic prd_pressure_test_3_3partition


2.2.1.2创建4分区3副本TOPIC prd_pressure_test_4_3partition

./kafka-topics --create --bootstrap-server bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --replication-factor 3 --partitions 4 --topic prd_pressure_test_4_3partition


2.2.1.3创建6分区3副本TOPIC prd_pressure_test_6_3partition

./kafka-topics --create --bootstrap-server bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --replication-factor 3 --partitions 6 --topic prd_pressure_test_6_3partition


2.2.1.4创建8分区3副本TOPIC prd_pressure_test_8_3partition

./kafka-topics --create --bootstrap-server bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --replication-factor 3 --partitions 8 --topic prd_pressure_test_8_3partition


2.2.2 producer压测脚本

Kafka节点数

分区数

副本数

每条消息大小

Acks

6

3

3

2k

1

6

3

3

2k

All

2.2.2.1 3分区3副本100w 2K数据写入压测

./kafka-producer-perf-test  --topic prd_pressure_test_3_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 acks=1

./kafka-producer-perf-test  --topic prd_pressure_test_3_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 acks=all


2.2.2.2 4分区3副本100w 2K数据写入压测

Kafka节点数

分区数

副本数

每条消息大小

Acks

6

4

3

2k

1

6

4

3

2k

All

./kafka-producer-perf-test  --topic prd_pressure_test_4_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092  acks=1

./kafka-producer-perf-test  --topic prd_pressure_test_4_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092  acks=all


2.2.2.3 6分区3副本100w 2K数据写入压测

Kafka节点数

分区数

副本数

每条消息大小

Acks

6

6

3

2k

1

6

6

3

2k

All

./kafka-producer-perf-test  --topic prd_pressure_test_6_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092  acks=1

./kafka-producer-perf-test  --topic prd_pressure_test_6_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092  acks=all

Kafka节点数

分区数

副本数

每条消息大小

Acks

6

8

3

2k

1

6

8

3

2k

All

2.2.2.4 8分区3副本100w 2K数据写入压测

./kafka-producer-perf-test  --topic prd_pressure_test_8_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092  acks=1

./kafka-producer-perf-test  --topic prd_pressure_test_8_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092  acks=all


2.3 生产环境producer压测结果

Kafka节点数

分区数

副本数

每秒发送消息

消息大小

每条消息大小

Acks

6

3

3

150037.509377 records/sec

293.04 MB/sec

2k

1

6

4

3

 176584.849020 records/sec

344.89 MB/sec

2k

1

6

6

3

176180.408739 records/sec

344.10 MB/sec

2k

1

6

8

3

184604.024368 records/sec

362.19 MB/sec

2k

1

6

3

3

54062.820998 records/sec

105.59 MB/sec

2k

All

6

4

3

76202.087937 records/sec

148.83 MB/sec

2k

All

6

6

3

121728.545344 records/sec

237.75 MB/sec

2k

All

6

8

3

135924.969417 records/sec

265.48 MB/sec

2k

All


2.4 生产环境consumer压测脚本


2.4.1 consumer压测脚本


2.4.1.1 3分区3副本1线程100w 2K数据读取压测

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

1

3

3

2k

./kafka-consumer-perf-test --broker-list bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --topic prd_pressure_test_3_3partition --fetch-size 1 --messages 1000000 --threads 1

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

1

4

3

2k


2.4.1.2 4分区3副本1线程100w 2K数据读取压测

./kafka-consumer-perf-test --broker-list bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --topic prd_pressure_test_4_3partition --fetch-size 1 --messages 1000000 --threads 1


2.4.1.3 6分区3副本1线程100w 2K数据读取压测

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

1

3

3

2k

./kafka-consumer-perf-test --broker-list bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --topic prd_pressure_test_6_3partition --fetch-size 1 --messages 1000000 --threads 1

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

1

3

3

2k


2.4.1.4 8分区3副本1线程100w 2K数据读取压测

./kafka-consumer-perf-test --broker-list bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --topic prd_pressure_test_8_3partition --fetch-size 1 --messages 1000000 --threads 1

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

1

3

3

2k


2.4.1.5 3分区3副本3线程100w 2K数据读取压测

./kafka-consumer-perf-test --broker-list bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --topic prd_pressure_test_3_3partition --fetch-size 1 --messages 1000000 --threads 3

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

1

3

3

2k


2.4.1.6 4分区3副本4线程100w 2K数据读取压测

./kafka-consumer-perf-test --broker-list bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --topic prd_pressure_test_4_3partition --fetch-size 1 --messages 1000000 --threads 4

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

1

3

3

2k


2.4.1.7 6分区3副本6线程100w 2K数据读取压测

./kafka-consumer-perf-test --broker-list bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --topic prd_pressure_test_6_3partition --fetch-size 1 --messages 1000000 --threads 6

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

1

3

3

2k


2.4.1.8 8分区3副本8线程100w 2K数据读取压测

./kafka-consumer-perf-test --broker-list bdkap01:9092,bdkap02:9092,bdkap03:9092,bdkap04:9092,bdkap05:9092,bdkap06:9092 --topic prd_pressure_test_8_3partition --fetch-size 1 --messages 1000000 --threads 8


2.5 生产环境consumer压测结果

Kafka节点数

线程数

分区数

副本数

每秒发送消息 条/秒

消息大小 M/s

每条消息大小

6

1

3

3

57336.1619

123.5295

2k

6

1

4

3

63633.4712

124.2841

2k

6

1

6

3

85390.4022

166.7781

2k

6

1

8

3

83305.8147

162.7067

2k

6

3

3

3

53688.3926

104.8601

2k

6

4

4

3

65150.8242

127.2477

2k

6

6

6

3

78499.0973

153.3185

2k

6

8

8

3

84154.0857

164.3634

2k


  1. 测试环境压测


3.1 测试环境集群配置

Kafka版本

主机名

CPU

内存

磁盘

网卡

2.2.1

bdlxq03

96

376.3 GiB

36.2 TiB 机械

万兆

2.2.1

bdlxq04

96

376.3 GiB

36.2 TiB 机械

万兆

2.2.1

bdlxq05

96

376.3 GiB

36.2 TiB 机械

万兆


3.2测试环境producer压测脚本

创建TOPIC

创建3分区3副本TOPIC prd_pressure_test_3_3partition

./kafka-topics.sh --create --bootstrap-server bdlxq03:9092,bdlxq04:9092,bdlxq05:9092 --replication-factor 3 --partitions 3 --topic prd_pressure_test_3_3partition


3.2.1 producer压测脚本

Kafka节点数

分区数

副本数

每条消息大小

Acks

6

3

3

2k

1

6

3

3

2k

All

3.2.1.1 3分区3副本100w 2K数据写入压测

./kafka-producer-perf-test  --topic prd_pressure_test_3_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdlxq03:9092,bdlxq04:9092,bdlxq05:9092

./kafka-producer-perf-test  --topic prd_pressure_test_3_3partition --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=bdlxq03:9092,bdlxq04:9092,bdlxq05:9092 acks=all

Kafka节点数

分区数

副本数

每秒发送消息

消息大小

每条消息大小

3

3

3

139508.928571 records/sec

272.48 MB/sec

2k

3

3

3

52058.930710 records/sec

101.68 MB/sec

2k

3.3测试环境producer压测结果


3.4测试环境consumer压测脚本


3.4.1 consumer压测脚本

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

1

3

3

2k


3.4.1.1 3分区3副本1线程100w 2K数据读取压测

./kafka-consumer-perf-test --broker-list bdlxq03:9092,bdlxq04:9092,bdlxq05:9092 --topic prd_pressure_test_3_3partition --fetch-size 1 --messages 1000000 --threads 1

Kafka节点数

线程数

分区数

副本数

每条消息大小

6

3

3

3

2k


3.4.1.2 3分区3副本3线程100w 2K数据读取压测

afka-consumer-perf-test --broker-list bdlxq03:9092,bdlxq04:9092,bdlxq05:9092 --topic prd_pressure_test_3_3partition --fetch-size 1 --messages 1000000 --threads 3


3.5测试环境consumer压测结果

Kafka节点数

线程数

分区数

副本数

每秒发送消息 条/秒

消息大小 M/s

每条消息大小

6

1

3

3

53937.4326

105.3465

2k

6

8

8

3

52659.2944

102.8502

2k

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329744.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号