S3基准:NVMe上的MinIO
写得好的软件就是快速的软件。当MinIO诞生时,它的设计从一开始就是简单,可扩展(因为简单的东西可以更好地扩展)和快速。简洁和规模有其自己的主观和客观度量-但是快速通常是数字游戏。
当您使用编写精良的快速软件并将其与快速硬件配对时,结果会非常令人印象深刻。
这正是我们在NVMe SSD的S3 Benchmark工作中所看到的。
在本轮比赛中,我们回到了wasabi-tech的S3基准测试中。该工具从单个客户端到单个端点进行基准测试。在我们评估期间,这个简单的工具在多次运行中产生了一致且可重复的结果。
选择的硬件包括具有本地NVMe驱动器和100 GbE网络的裸机,存储优化实例。这是AWS内部CPU / SSD的顶级功能。

正如人们所期望的那样,快速硬件和快速软件的组合产生了一些令人印象深刻的结果:

MinIO能够有效地使100GBe网络饱和。为了了解网络利用率模式,我们每两秒钟测量一次每个节点上的带宽利用率。在所有8个节点上,写入阶段的平均网络带宽利用率为77 Gbit / sec,而读取阶段的平均网络带宽利用率为84.6 Gbit / sec。这代表客户端流量以及节点间流量。客户端可用的带宽部分约为读写的一半。如果专用网络可用于节点间流量,则可以期望更高的吞吐量。
请注意,写入基准测试比读取基准测试慢,因为基准测试工具无法解决
写放大(来自写期间生成的奇偶校验数据的流量)。在这种情况下,100 Gbit
随着MinIO在读写方面接近硬件性能,网络成为了瓶颈。
虽然在HDD帖子中有说明,但加密点在这里需要重复。与加密相关的开销可以忽略不计,并使企业能够实施最佳实践,而不会造成性能损失。这是MinIO高度优化的加密算法的功能,该算法利用SIMD(单指令多数据),可在一个单元(数据向量)上提供数据级并行性。结果,与执行多个指令相反,在多个数据点上并行执行单个指令。
这样的性能数字极大地扩展了用例的范围,涵盖了从流分析到Spark,Presto,Tensorflow以及其他所有方面,使对象层成为企业分析数据堆栈中的头等公民。
此类性能的影响将因行业和工作负载而异。例如,金融服务行业正在NVMe上迅速标准化。性能对于他们而言至关重要,而且NVMe相对于HDD的增量成本很容易得到证明。
在自动驾驶汽车空间和航空航天行业也做出了类似的决定。在各行各业中,工作负载类型对于关键业务,分析工作负载也变得至关重要,这些工作负载使NVMe for Spark,Presto,Flink和Tensorflow成为可能。正如我们在HDD帖子中所展示的那样,您仍然可以使用HDD产生令人印象深刻的数字,但是如果您现在需要答案... NVMe是必经之路。