如何理解nvme命令的输出?

如何理解nvme命令的输出?

为了优化 SSD 的性能,拱门维基表示运行nvme id-ns /dev/nvme0n1并评估输出,特别是以 . 开头的最后几行lbaf。如果有多个lbaf条目,则驱动器支持多个扇区大小选项。 Arch wiki 中最相关的信息是,

RP(相对性能)值指示哪种格式将提供最佳性能,0 表示最佳。

我的 NVMe SSD 确实有两个lbaf条目,但不清楚哪一个更优化。以下是上述nvme命令在我的系统上的相关输出:

lbaf  0 : ms:0   lbads:9  **rp**:0x2 (in use)
lbaf  1 : ms:0   lbads:12 **rp**:0x1

所以这两个选项都会显示RP从...开始0。我该如何理解其意义x2x1在两端?

答案1

使用-H该命令的选项可以以人类可读的格式获取结果。它应该看起来像这样:

# nvme id-ns -H /dev/nvme0n1
...
LBA Format  0 : Metadata Size: 0   bytes - Data Size: 512 bytes - Relative Performance: 2 Good (in use)
LBA Format  1 : Metadata Size: 0   bytes - Data Size: 4096 bytes - Relative Performance: 1 Better

前缀0x是一个常见的指示符,表明后面的数字是十六进制的,因此后面的实际数字RP分别是 2 和 1。

SSD性能受到所谓的影响写放大由于SSD擦除块通常比普通文件系统512字节块大,因此为了重写一个块,SSD每次都必须擦除并重写整个擦除块(包括多个文件系统块)。如果文件系统看到的块大小与 SSD 的擦除块大小匹配,则可以避免这种情况。 (如果操作系统知道擦除块大小并使用写入缓存策略将写入分组到较大的连续块以进行补偿,则也可以将其最小化,但可能无法完全消除。)

因此,对于 SSD,将其配置为大于经典块大小通常会提高性能。然而,有很多(旧的)操作系统和软件还无法利用使用更大块大小的可能性,因此某些 SSD 只是进行了优化,以尽可能利用内部缓冲来处理 512 字节块大小。能。

然而,还有很多其他因素会影响磁盘或 SSD 的性能,因此一些制造商显然希望避免声称特定的块大小肯定是所有可能情况下的“最佳”大小。所以,RP的价值0某些 SSD 可能根本不使用。

相关内容