M.2 NVMe SSD 的写入 IOPS 为何可能高于读取 IOPS?

M.2 NVMe SSD 的写入 IOPS 为何可能高于读取 IOPS?

抱歉,我不知道在哪里问这个问题比较合适。 Meta 告诉我在这里提问是安全的在SuperUser.com上:

今晚,我正在阅读 Seagate FireCuda 530 M.2 NVMe SSD 的评论这里

(请不要将此问题解读为 Tom's Hardware 或 Seagate 的托儿!)

500GB型号说明:

  • 随机读取 400,000 IOPS;随机写入 700,000 IOPS

1TB型号表示:

  • 随机读取 800,000 IOPS;随机写入 1,000,000 IOPS

2&4TB型号表示:

  • 随机读取 1,000,000 IOPS;随机写入 1,000,000 IOPS

这些事实也出现在制造商的数据表

令人惊讶的是,在更深层次的评论中第 2 页, 它说:

希捷的 4TB FireCuda 530 在随机读取工作负载期间表现出色,与三星 980 Pro 匹敌,并且在 QD 为 1 时响应速度比 WD_Black SN850 更快。我们将工作负载调高到 QD 为 256,FireCuda 530 的最大随机读/写 IOPS 约为 825,000 / 1,555,000。

(当我以每秒 1.5M 的写入 IOPS 的速度读取时,我的大脑很痛,因为我是在使用 5.25 英寸软盘的“计算时代”来的!)

问题:

  1. 写入 IOPS 为何比读取 IOPS 更高?我的假设是:写入总是比读取更昂贵。为什么?写入验证/确认。或者写入 IOPS 是否比读取 IOPS 少 KB?如果硬件使用大量写入缓存,这在电源循环之间是否也会持续存在?
  2. 为什么以下型号之间的写入和读取 IOPS 比率会发生变化:(a) 500GB、(b) 1TB 和 (c) 2 和 4TB?

最后,我在其他 M.2 NVMe SSD 中也看到了同样的趋势。

答案1

答案是写入缓存,在 SDRAM、SLC 或两者中。NVMe 控制器可以在数据收到后但写入其最终 NAND 位置之前立即将写入 I/O 的完成情况发布到主机。对于读取,NVMe 控制器必须将数据从 NAND 传送到主机,这涉及在 NAND 映射表中查找块(在这些非常高的 IOP 级别下相对耗时),然后从 NAND 传输数据。

相关内容