更新的 NVMe 基准测试:读取速度为 2.6Tbps+
MinIO 坚信透明度和数据驱动的讨论。这就是为什么我们发布我们的基准并挑战其他行业也这样做的原因。
这也是为什么我们开发的工具可以对性能进行干净、清晰的测量,并且可以轻松复制。我们希望人们自己测试。
此外,我们在没有调整的情况下对商品硬件进行基准测试。这与其他供应商使用的高度调整的专用硬件方法有着根本的不同,这些方法的可预测性给基准带来了坏名声。
我们要求其他行业效仿。
我们最近更新了主存储基准。对于我们的客户,由于其性价比特征,主存储使用 NVMe 驱动器。我们将很快为那些希望了解硬盘价格/性能的客户更新我们的硬盘基准。
在这篇文章中,我们将介绍基准测试环境、工具、如何自行复制以及详细结果。对于那些想快速了解的人来说,32 节点 MinIO 集群的结果可以总结如下:
在聚合基础上,这提供了 1.32 Tbps 的 PUT 吞吐量和 2.6 Tbps 的 GET 吞吐量。我们相信这是业内最快的。
基准设置
MinIO 相信在向客户推荐的相同硬件上进行基准测试。对于主存储,我们推荐 NVMe。我们已经遵循这一建议一年多了,因为我们的客户向我们展示了 NVMe 的性价比特征代表了这些主存储工作负载的最佳选择。
我们使用带有本地 NVMe 驱动器和 100 GbE 网络的标准 AWS 裸机、存储优化实例来完成我们的工作。这些是 MinIO 推荐给其生产客户用于 AWS 云中的相同实例。
对于软件,我们使用了 AWS 上默认安装的 Ubuntu 20.04、最新版本的 MinIO 和我们内置的 Speedtest 功能。
Speedtest 内置于 MinIO 服务器中,可通过控制台 UI 或mc admin speedtest命令访问。它不需要特殊技能或额外的软件。您可以在此处阅读更多相关信息。
测量单驱动器性能
使用命令 dd 测量每个驱动器的性能。DD 是一种 unix 工具,用于将数据从一个文件逐位复制到另一个文件。它提供选项来控制每次读写的块大小。
这是单个 NVMe 驱动器的写入性能示例,块大小为 16MB,O_DIRECT 选项共 64 个副本。请注意,我们为每个驱动器实现了超过 1.1 GB/秒的写入性能。

这是单个 HDD 驱动器的读取性能输出,使用 O_DIRECT 选项,块大小为 16MB,总计数为 64。请注意,我们为每个驱动器实现了超过 2.3 GB/秒的读取性能。

测量 JBOD 性能
使用 https://github.com/minio/dperf 测量了 O_DIRECT 的 JBOD 性能。dperf 是一个文件系统基准测试工具,可以生成和测量文件系统的读写性能。默认情况下,dperf 命令使用 64 个并行线程、4MB 块大小和 O_DIRECT 运行。

网络性能
这些节点上的网络硬件允许最大 100 Gbit/sec 的速度。100 Gbit/sec 等于 12.5 Gbyte/sec(1 Gbyte = 8 Gbit)。
因此,每个节点的预期最大吞吐量为 12.5 GB/秒。
运行 32 节点分布式 MinIO 基准测试
MinIO 在自动调谐模式下运行 Speedtest。自动调谐模式会逐渐增加负载以查明最大总吞吐量。
$ mc admin speedtest minio/
测试将运行并在屏幕上显示结果。根据您的 MinIO 集群,测试可能需要几秒到几分钟的时间来执行。标志 -v 指示详细模式。用户可以确定适当的纠删码设置。我们推荐 EC:4,但包括下面的 EC:2 和 EC:4。
MINIO_STORAGE_CLASS_STANDARD=EC:2

MINIO_STORAGE_CLASS_STANDARD=EC:3

MINIO_STORAGE_CLASS_STANDARD=EC:4(默认)

结果解释
写入阶段的平均网络带宽利用率为 77 Gbit/sec,读取阶段为 84.6 Gbit/sec。这代表客户端流量以及节点间流量。此带宽中可供客户端使用的部分大约是读取和写入的一半。
在这些测试期间,网络几乎完全被阻塞。如果专用网络可用于节点间流量,则可以预期更高的吞吐量。
请注意,写入基准比读取慢,因为基准工具不考虑写入放大(来自写入期间生成的奇偶校验数据的流量)。在这种情况下,100 Gbit 网络是瓶颈,因为 MinIO 的读写性能接近硬件性能。
结论
基于以上结果,我们发现 MinIO 充分利用了可用的硬件。它的性能仅受可用的底层硬件的限制。该基准测试已使用我们针对性能工作负载推荐的配置进行了测试,并且可以在一小时内以不到 350 美元的价格轻松复制。
您可以在此处下载基准测试的 PDF 文件。你可以在这里下载 MinIO 。如果您有任何疑问,请通过sales@minio.org.cn联系我们或加入Slack 社区。