Kafka 性能测试

Kafka 性能测试,第1张

原文地址: https://alphahinex.github.io/2022/06/19/kafka-perf-test/

description: "使用自带脚本进行性能测试"

date: 2022.06.19 10:34

categories:

- Kafka

tags: [Kafka, Java]

keywords: Kafka, Producer, Consumer, Performance, Test

在 Apache Kafka 安装目录的 bin 路径下,包括启停服务在内的很多脚本。这些脚本能够帮助我们完成对 Kafka 的各类 *** 作,其中就有对生产者和消费者进行性能测试的工具。

脚本分为两个版本:Linux 下执行的 Shell 脚本,以及 Windows 下执行的 bat 脚本。

以 Shell 脚本为例,可以查看脚本内容,除了停止 ZooKeeper 和 Kafka 服务的脚本外,其余脚本均会在最后调用 kafka-run-class.sh 并根据使用脚本的不同,传入不同的类进行处理。

本文主要涉及下面五个脚本:

可以先随便执行一个脚本查看一下是否能够正常执行脚本,如:

可参照如下命令,创建一个名为 hinex-topic 的主题,分区数为 6 ,副本数为 2 :

命令执行成功后,可以在消息代理的日志路径( <log.dirs>/<topic>-<partition_idx>)中,看到分区的存储目录。本例中第一个分区在第三个消息代理节点上的存储路径为 /kafka/kafka-logs-kafka-sh-2/hinex-topic-0 。关于 Kafka 的记录存储结构,可阅读 【译】深入了解 Apache Kafka 存储内部 了解更多。

可通过脚本,在控制台中生产及消费消息,验证消息队列基本功能。

在一个终端窗口中启动生产者:

在另一个终端窗口中启动消费者:

此时在生产者中输入消息内容并回车,消费者终端窗口中可以接收到消息。

功能正常,接下来可以开始进行性能测试了。

由于测试用的主题中并没有什么消息记录,所以先进行生产者性能测试产生消息,再进行消费者性能测试。

可参照如下方式,使用 kafka-producer-perf-test.sh 脚本,约每秒钟产生 10 条消息,每条消息 1024 字节,共产生 200 条消息:

从执行结果中,可以看到消息发送的进度、每秒发送的消息数及数据量、平均延迟及最大延迟等统计信息。

如果想测试一下消息队列的吞吐量,可以将 --throughput 参数设为 -1 :

消费者性能测试可使用 kafka-consumer-perf-test.sh 脚本,如:

可通过 kafka-consumer-perf-test.sh --help 获得参数详细说明。

测试结束后,可将测试主题删除:

对照 Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines) 中场景,使用自带脚本进行一组实测。

每组测试使用 5 千万条记录,每条记录大小为 100 字节。

各场景结果汇总如下:

各场景运行过程记录如下。

三个终端同时执行如下命令(两个生产 1700 万数据,一个生产 1600 万数据):

各场景使用 6 分区 3 副本的主题,结果汇总如下:

各场景运行过程记录如下。

三个终端同时执行如下命令(两个消费 1700 万数据,一个消费 1600 万数据):

使用一个新的 6 分区 3 副本的主题,生产脚本和消费脚本同时执行。

引文:795,064 records/sec (75.8 MB/sec)

实测:738,836 records/sec (70.46 MB/sec)

生产者终端:

消费者终端:

我这里是使用的是,kafka自带的zookeeper。

以及关于kafka的日志文件啊,都放在默认里即/tmp下,我没修改。保存默认的

1、 [hadoop@sparksinglenode kafka_2.10-0.8.1.1]$ jps

2625 Jps

2、 [hadoop@sparksinglenode kafka_2.10-0.8.1.1]$ bin/zookeeper-server-start.sh config/zookeeper.properties

此刻,这时,会一直停在这,因为是前端运行。

另开一窗口,

3、 [hadoop@sparksinglenode kafka_2.10-0.8.1.1]$ bin/kafka-server-start.sh config/server.properties

也是前端运行。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/7948925.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存