编写良好的软件就是快速的软件。MinIO 在构思之初就从头开始设计,力求简单、可扩展(因为简单的事物更容易扩展)和快速。简单性和可扩展性有其主观和客观的衡量标准 - 但速度通常是一个数字游戏。
当您将编写良好的、快速的软件与快速的硬件配对时,结果可能会非常令人印象深刻。
这正是我们在 NVMe SSD 上的 S3 基准测试工作中看到的情况。
在本轮测试中,我们再次使用 wasabi-tech 的 S3-benchmark 进行测试。此工具从单个客户端到单个端点进行基准测试。在我们的评估中,这个简单的工具在多次运行中产生了稳定且可重复的结果。
选定的硬件包括裸机、存储优化的实例,带有本地 NVMe 驱动器和 100 GbE 网络。这是 AWS 内部 CPU/SSD 的顶级配置。

正如人们所料,快速硬件和快速软件的结合带来了一些令人印象深刻的结果。

MinIO 能够有效地饱和 100GBe 网络。为了了解网络利用率模式,我们每两秒测量每个节点上的带宽利用率。在所有 8 个节点上,写入阶段的平均网络带宽利用率为 77 Gbit/秒,读取阶段的平均网络带宽利用率为 84.6 Gbit/秒。这代表了客户端流量以及节点间流量。客户端可用的带宽部分在读取和写入时大约都为一半。如果为节点间流量提供专用网络,则可以预期更高的吞吐量。
请注意,写入基准测试比读取慢,因为基准测试工具没有考虑
写入放大(写入期间生成的奇偶校验数据产生的流量)。在这种情况下,100 Gbit
网络是瓶颈,因为 MinIO 在读取和写入方面都接近硬件性能。
虽然在 HDD 文章 中已经提到过,但加密点在这里需要重复说明。与加密相关的开销可以忽略不计,并且使企业能够实施最佳实践,而不会产生任何性能损失。这是 MinIO 高度优化的加密算法的功能,这些算法利用 SIMD(单指令多数据),在单元(数据向量)上提供数据级并行性。因此,单个指令会在多个数据点上并行执行,而不是执行多个指令。
这样的性能数据极大地扩展了用例组合,涵盖从流分析到 Spark、Presto、Tensorflow 等所有内容,使对象层成为企业分析数据栈中的一等公民。
此类性能的影响因行业和工作负载而异。例如,金融服务行业正在迅速将 NVMe 标准化。性能对他们至关重要,与 HDD 相比,NVMe 的增量成本很容易证明是合理的。
自动驾驶汽车领域和航空航天行业也做出了类似的决策。在各行各业,工作负载类型也很重要,业务关键型分析工作负载会为 Spark、Presto、Flink 和 Tensorflow 使用 NVMe。正如我们在 HDD 文章中所示,您仍然可以使用 HDD 生成令人印象深刻的数字,但如果您需要立即获得答案……NVMe 是最佳选择。
所有 基准测试的详细信息都发布在此处,我们鼓励您自行复制结果。
如果您想更深入地了解结果,请发送邮件至 hello@min.io 或点击页面底部的表单。