基准结果

已完成

现在,我们将检查基准结果,以验证我们在上一单元中讨论的性能提示。 具体而言,我们专注于使用 SPEC SFS 基准套件生成多个模拟 EDA 生产型工作负荷的线程。 此外,我们还展示了 FIO 结果,以检查一些性能做法。

两个基准工具概述

SPEC SFS 套件是 EDA 的标准行业标准。 典型的 EDA 工作负荷包括功能阶段和物理阶段。 功能阶段主要执行随机 I/O 和文件系统元数据操作。 物理相位驱动大块顺序读取和写入。

FIO 是一种 I/O 工具,可以生成一致的随机或顺序读/写负载,以基准测试存储目标的 IOPS 和吞吐量。

Azure NetApp 文件中的卷类型

Azure NetApp 文件提供两种类型的卷,可为云数据存储预配:常规卷和 大型卷。 下表重点介绍了这两种卷类型之间的一些主要差异。 选择适合工作负载的卷类型时,请使用此表作为指导。

限度 常规卷 大容量
最小容量 100 GiB 50 TiB
最大容量 100 TiB 500 TiB
支持的最低服务级别 标准 标准
观察到的最大吞吐量 4,500 MiB/s 10,240 MiB/s
观察到的最大读取 IOPS ~200,000 ~700,000
观察到的最大写入 IOPS ~135,000 ~474,000

常规卷的 SPEC EDA 工具的基准检验结果

本节中的图形演示 I/O 和延迟曲线。 他们研究以下性能实践的一些组合:

  • nocto,actimeo=600
  • sysctl tuned
  • nconnect=16

当应用上述所有三种做法时,每秒的 I/O作都会增加,并且仍保持低延迟(小于 1 毫秒)。

显示 SPEC EDA 结果的关系图,其中在应用所有三种做法时 I/O 增加仍可保持低延迟。

下图演示了 NFSv3 对于这种类型的工作负荷,NFSv3 的性能优于 NFSv4.1。

此图显示了 SPEC E D A 结果,用于演示 N F S 版本 3 的性能优于 N F S 版本 4.1。

下图演示了 rsize=wsize=262144(256 K) 性能优于其他设置。

显示 SPEC E D A 结果的图示,以比较 r 大小和 w 大小值。

SPEC EDA 工具的大数据量基准结果

使用具有以下配置的 SPEC SFS 基准对单个大型卷执行性能阈值测试:

配置类型 设置
操作系统 RHEL 9.3 / RHEL 8.7
实例类型 D16s_v5
实例计数 10
装载选项 nocto,actimeo=600,hard,rsize=262144,wsize=262144,vers=3,tcp,noatime,nconnect=8

与 Azure NetApp 文件中的常规卷相比,测试使用 SPEC SFS 基准比较了大型卷的性能功能。

情景 I/O 速率为 2 毫秒 MiB/秒(2 毫秒)
一个常规卷 39,601 692
一个大型卷 652,260 10,030

比较大量情况下延迟和吞吐量的图示。

常规卷的 FIO 工具的基准检验结果

以下 FIO 命令分别用于基准测试 IOPS 和吞吐量。

// FIO commands to benchmark IOPS:
// 8K Random Reads
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
// 8K Random Writes
fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

// FIO commands to benchmark throughput:
// 64K Sequential Reads
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
// 64K Sequential Writes
fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

以下两个图演示了,当对 nocto,actimeo=600nconnect=16sysctl 进行优化时,Azure NetApp 文件可以实现更高的 IOPS 和吞吐量。

显示更高 IOPS 的 FIO 结果的图示。

显示更高吞吐量的 F I O 结果的图表。

大型卷的 FIO 工具的基准检验结果

本部分介绍使用 FIO 基准的单个大型卷的性能阈值。 测试是使用以下配置运行的:

组件 配置
Azure VM 大小 E32s_v5
Azure VM 出口带宽限制 2000MiB/秒(2GiB/秒)
操作系统 RHEL 8.4
大型卷大小 101 TiB 超(10,240 MiB/秒 传输速率)
装载选项 hard,rsize=65536,wsize=65536,vers=3
注意:使用 262144 和 65536 有类似的性能结果

256-KiB 顺序工作负荷 (MiB/s)

该图表示 256 KiB 顺序工作负荷和 1 TiB 工作集。 它表明,单个 Azure NetApp 文件大型卷可以处理大约 8,518 MiB/s 的纯顺序写入和 9,970 MiB/s 纯顺序读取。

大型卷上 256-KiB 顺序工作负荷的条形图。

8-KiB 随机工作负荷 (IOPS)

该图表示 8-KiB 随机工作负荷和 1 TiB 工作集。 该图显示 Azure NetApp 文件大型卷的处理次数可在大约 474,000 次(纯随机写入)到大约 709,000 次(纯随机读取)之间。

大型卷上随机工作负荷的条形图。