分布式消息服务KAFKA版-测试Kafka实例TPS:测试结果
测试结果
测试场景一(实例是否开启SASL):相同的Topic(30分区、3副本、异步复制、异步落盘),实例分为开启SASL和未开启SASL,测试结果如下:
实例规格 |
磁盘类型 |
代理数量 |
TPS(开启SASL) |
TPS(未开启SASL) |
---|---|---|---|---|
kafka.2u4g.cluster |
超高I/O |
3 |
100000 |
280000 |
kafka.4u8g.cluster |
超高I/O |
3 |
170000 |
496000 |
kafka.8u16g.cluster |
超高I/O |
3 |
200000 |
730000 |
kafka.12u24g.cluster |
超高I/O |
3 |
320000 |
790000 |
kafka.16u32g.cluster |
超高I/O |
3 |
360000 |
1000000 |
结论:在Topic相同的情况下,生产消息到规格相同、接入方式不同的Kafka实例,未开启SASL的实例TPS高于开启SASL的实例TPS。
测试场景二(同步/异步复制):相同的实例(超高I/O、3个代理、未开启SASL),不同复制机制的Topic,生产者进程数为3时,测试结果如下:
实例规格 |
是否同步落盘 |
副本数 |
分区数 |
TPS(同步复制) |
TPS(异步复制) |
---|---|---|---|---|---|
kafka.2u4g.cluster |
否 |
3 |
30 |
100000 |
280000 |
kafka.4u8g.cluster |
否 |
3 |
30 |
230000 |
496000 |
kafka.8u16g.cluster |
否 |
3 |
30 |
342000 |
730000 |
kafka.12u24g.cluster |
否 |
3 |
30 |
383000 |
790000 |
kafka.16u32g.cluster |
否 |
3 |
30 |
485000 |
1000000 |
结论:生产消息到同一个Kafka实例的不同Topic中,Topic除了复制机制,其他参数相同,异步复制Topic的TPS高于同步复制Topic的TPS。
测试场景三(是否同步落盘):相同的实例(超高I/O、3个代理、未开启SASL),不同落盘机制的Topic,测试结果如下:
实例规格 |
是否同步复制 |
副本数 |
分区数 |
TPS(同步落盘) |
TPS(异步落盘) |
---|---|---|---|---|---|
kafka.2u4g.cluster |
否 |
3 |
30 |
30000 |
280000 |
kafka.4u8g.cluster |
否 |
3 |
30 |
32500 |
496000 |
kafka.8u16g.cluster |
否 |
3 |
30 |
36100 |
730000 |
kafka.12u24g.cluster |
否 |
3 |
30 |
37400 |
790000 |
kafka.16u32g.cluster |
否 |
3 |
30 |
40400 |
1000000 |
结论:生产消息到同一个Kafka实例的不同Topic中,Topic除了落盘机制,其他参数相同,异步落盘Topic的TPS远远高于同步落盘Topic的TPS。
测试场景四(不同磁盘类型):相同的Topic(30分区、3副本、异步复制、异步落盘),不同磁盘类型的实例,测试结果如下:
实例规格 |
代理数量 |
是否开启SASL |
TPS(高I/O) |
TPS(超高I/O) |
---|---|---|---|---|
kafka.2u4g.cluster |
3 |
否 |
110000 |
250000 |
kafka.4u8g.cluster |
3 |
否 |
135000 |
380000 |
kafka.8u16g.cluster |
3 |
否 |
213000 |
480000 |
kafka.12u24g.cluster |
3 |
否 |
240000 |
577000 |
kafka.16u32g.cluster |
3 |
否 |
280000 |
840000 |
结论:在Topic相同的情况下,生产消息到规格相同、磁盘类型不同的Kafka实例,超高I/O的实例TPS高于高I/O的实例TPS。
测试场景五(不同分区数):相同的实例(超高I/O、3个代理、未开启SASL),不同分区数的Topic,测试结果如下:
实例规格 |
是否同步落盘 |
是否同步复制 |
副本数 |
TPS(3分区) |
TPS(12分区) |
TPS(100分区) |
---|---|---|---|---|---|---|
kafka.2u4g.cluster |
否 |
否 |
3 |
250000 |
260000 |
250000 |
kafka.4u8g.cluster |
否 |
否 |
3 |
330000 |
280000 |
260000 |
kafka.8u16g.cluster |
否 |
否 |
3 |
480000 |
410000 |
340000 |
kafka.12u24g.cluster |
否 |
否 |
3 |
570000 |
750000 |
520000 |
kafka.16u32g.cluster |
否 |
否 |
3 |
840000 |
1000000 |
630000 |
结论:生产消息到同一个Kafka实例的不同Topic中,Topic除了分区数量,其他参数相同。随着分区数的增加,Kafka的性能通常会随之增加,当分区数达到一定程度后,继续增加分区数可能会导致性能下降。
- kafka是什么_kafka介绍_分布式消息服务Kafka版
- 分布式消息服务Kafka版与分布式消息服务RocketMQ版的区别_Kafka与RocketMQ对比_Kafka与RocketMQ差异
- 分布式消息服务优势_分布式消息服务_消息队列-华为云
- 分布式消息服务有哪些_分布式消息服务哪个好_分布式消息-华为云
- Kafka架构_Kafka如何实现负载均衡_Kafka数据存储方式-华为云
- 分布式消息中间件实战_分布式消息实战_分布式消息-华为云
- 分布式消息中间件的作用_分布式消息中间件_分布式消息-华为云
- 分布式消息系统Kafka_分布式消息系统_分布式消息kafka可以解决什么问题-华为云
- RocketMQ是什么_RocketMQ介绍_分布式消息服务RocketMQ版
- MapReduce服务_什么是Kafka_如何使用Kafka