如何禁用 NVMe SSD 的磁盘缓存

如何禁用 NVMe SSD 的磁盘缓存

我知道hdparm -W0 /dev/sata-ssd可以禁用 SATA SSD 的磁盘缓存,但这对我的 NVMe SSD(即 Samsung 980 pro)不起作用。也许有些选项nvme可以做到这一点,但我找不到。

我怎样才能做到这一点?

谢谢。

答案1

您可以通过nvme命令执行此操作,但我很好奇您为什么要这样做。如果这是目标,禁用缓存将节省一些 RAM,但它至少会将您的吞吐量减少一半。

无论哪种方式,你都可以这样做:

# nvme get-feature -f 6 /dev/nvme0n1 
get-feature:0x6 (Volatile Write Cache), Current value:0x000001
# nvme set-feature -f 6 -v 0 /dev/nvme0n1 
set-feature:06 (Volatile Write Cache), value:00000000
# nvme get-feature -f 6 /dev/nvme0n1 
get-feature:0x6 (Volatile Write Cache), Current value:00000000

如果由于某种原因您选择在重新启动后保持这种状态,则需要编写一条udev规则:

ACTION=="add", KERNEL=="nvme*", RUN+="nvme set-feature -f 6 -v 0 %N"

这些命令适用于我的 Samsung 970 Pro,因此也应该适用于您的设备。

相关内容