了解 Fio **输出** 中的 I/O 深度以获得性能洞察

了解 Fio **输出** 中的 I/O 深度以获得性能洞察

我一直在使用 libaio 对 NVMe SSD 的 IOPS 进行基准测试,并且我注意到输出中的一个有趣的观察结果:IO提交和IO完成。 (请注意,我并不是询问 fio 的iodepth输入参数,因为已有一些关于它的帖子。)

这是我正在使用的示例命令:fio --name=iops_rw --ioengine=libaio --iodepth=32 --rw=randwrite --bs=4k --size=1G --numjobs=8 --runtime=30s --time_based --group_reporting --filename=/dev/nvme0n1

fio 输出一致表明IO提交和IO完成值在 [1-4] 范围内,观察如下:

IO depths    : ........
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
  • 首先,我不确定哪个值恰好在 [1, 4] 范围内以及如何解释此输出。
  • 我也很好奇这是否表明我的 NVMe SSD 可以通过“更好”的 fio 参数处理更高的 IOPS 性能。
  • 此外,我想知道这一观察可能为通过调整 fio 参数来提高 IOPS 性能提供哪些见解。

我尝试过更改numjobs参数,并在 IO 提交和 IO 完成中观察到相同的结果。我还尝试将bs块大小调整为更大的值,但行为差异很小(大多数 IO 提交和 IO 完成仍在范围 [1, 4] 内)。

相关内容