乐趣区

关于apache:Apache-Pulsar-与-Kafka-性能比较延迟性测试过程

🎙️浏览本文需 4 分钟

本系列文章将重点探讨 Pulsar 与 Kafka 的提早性,后续文章中会探讨吞吐量等。

本文将介绍测试细节(下图蓝色局部),下一篇文章将具体介绍测试方法(下图绿色局部),而测试后果在上一篇文章中详述(下图红色局部)。

测试细节介绍:

设定基准

To set up the benchmark tests, we followed the steps documented on the OpenMessaging site. After applying the Terraform configuration, you get the following set of EC2 instances: 咱们依据 OpenMessaging 网站上提供的步骤进行了基准测试。利用 Terraform 配置能够失去以下 EC2 实例集:

用于 Pulsar/BookKeeper 和 Kafka broker 的 i3.4xlarge 实例蕴含两个 NVMe SSD,以进步性能。这两个功能强大的虚拟机都有 16 个 vCPU、122 GiB 内存和高性能磁盘。

两个 SSD 对 Pulsar 而言是现实设定,因为不仅能够写入两个数据流,数据流还能在磁盘上并行。Kafka 还能够通过调配两个驱动器的分区来应用这两个 SDD。

用于 Pulsar 和 Kafka 的 Ansible playbook 应用 tuned-adm 命令(提早性能配置文件)调优低提早性能。

tuned-adm 命令详情参考 https://linux.die.net/man/1/t…

工作负载

尽管基准测试中附带了一些能够立刻运行的工作负载,然而为了更靠近 LinkedIn Engineering 博客中 Kafka 的测试后果,咱们仍进行了一些批改。定义新工作负载并不难,只需创立带有测试更新参数的 YAML 文件即可。

浏览 LinkedIn 博客你便会发现,他们运行的音讯大小都是 100 字节的,因为通常而言,如果音讯太小(远小于 100 字节),测试比照后果并不显著;而所有的音讯队列都不善于解决“大音讯”(远大于 100 字节),所以这里抉择了一个折中的大小,即 100 字节,这也是所有音讯零碎测试中抉择应用的单条音讯的大小。

这个大小更有利于测试音讯零碎自身的性能。无论每条音讯大小如何,用于测试的音讯总量是固定的,音讯零碎解决音讯的效率越高,性能越好;同时,网络或磁盘吞吐量限度对测试后果产生影响的可能性越低。音讯零碎在解决“大音讯”时的性能体现也是一个值得探讨的话题,但咱们目前只测试“小音讯”。

另外,在测试中,咱们还增加了 partition 数目为 6(简称:6 分区)的一项基准测试。因为在 LinkedIn 测试中应用了很多 6 分区,所以咱们也把它增加进来。

LinkedIn 博客中蕴含 producer-only 和 consumer-only 工作负载,而咱们在测试中应用的工作负载都同时包含 producer 和 consumer。起因有以下两点。

首先,就目前的状况来看,基准测试不反对 producer-only 或 consumer-only 工作负载;其次,在理论状况中,音讯零碎同时为 producer 和 consumer 服务。咱们决定采纳生产音讯和生产音讯的理论场景来测试。

综上所述,咱们用于测试的负载集如下:

Kafka consumer group 和 Pulsar 订阅很类似,都容许一个或多个 consumer 接管一个 topic 上的所有音讯。当一个 topic 与多个 consumer group/subscription 有关联时,音讯零碎向 topic 提供每条音讯的多个正本,或“扇出“音讯。

公布在 topic 上的每条音讯都被发送到所有 consumer group/subscription。如果所有音讯都被发送到同一 topic,且这一 topic 上只有一个 consumer group/subscription,则 producer 速率与 consumer 速率相等。

如果单个 topic 上有两个 consumer group/subscription,则 consumer 速率是 producer 速率的两倍。咱们尽量简化测试,所以采纳了前者,即多个 consumer 接管一个 topic 上的所有音讯。

上一篇文章详述 Pulsar 与 Kafka 的测试后果。Fsync 的状态是测试中的一个变量,另外,咱们还在测试中调节了分区数量,以更好地比照 Pulsar 与 Kafka 的提早性。

想要随时把握 Pulsar 的研发停顿、用户案例和热点话题吗?快来关注 Apache Pulsar 和 StreamNative 微信公众号,咱们第一工夫在这里分享与 Pulsar 无关的所有。

点击 链接,查看英文原稿

退出移动版