我知道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,因此也应该适用于您的设备。