smartctl NVMe SSD:“最大数据传输大小”是什么?

smartctl NVMe SSD:“最大数据传输大小”是什么?

我刚刚注意到Maximum Data Transfer Size我的两个 NVMe SSD 上都有一个规格(一个是 128 页,另一个是 64 页)。这到底是什么?它和 EBS 一样吗?拉塞年代ize,看到分区对齐到 SSD 擦除块大小是否毫无意义?或者https://en.wikipedia.org/wiki/Flash_memory#NAND_memories)?

# smartctl -c /dev/nvme0n1
(...)
Maximum Data Transfer Size:         128 Pages
(...)


# smartctl -c /dev/nvme1n1
(...)
Maximum Data Transfer Size:         64 Pages
(...)

答案1

来自 NVM Express 规范:

最大数据传输大小 (MDTS):此字段表示在主机可访问的内存(例如主机内存、控制器内存缓冲区(参见第 4.7 节))和控制器之间传输数据的命令的最大数据传输大小。主机不应提交超过此最大数据传输大小的命令。如果提交的命令超过此传输大小,则命令将中止,状态为“命令中的无效字段”。该值以最小内存页面大小 (CAP.MPSMIN) 为单位,并以 2 的幂 (2^n) 的形式报告。值为 0h 表示没有最大数据传输大小。

需要澄清的是,它是一次可以从主机发送到存储设备的数据量。它与其他任何因素(包括底层闪存的结构、呈现的块大小等)无关...


如果您热衷于计算实际大小,则需要使用该nvme实用程序找到 MPSMIN 的值。

例如,以下 SSD 支持 2MiB 的 MDTS。

$ nvme show-regs -H /dev/nvme0 | grep MPSMIN
        Memory Page Size Minimum         (MPSMIN): 4096 bytes
$ smartctl -c /dev/nvme0 | grep 'Maximum Data Transfer Size'
Maximum Data Transfer Size:         512 Pages

相关内容