无法编辑 /sys/block/sdX/device/queue_depth 文件

无法编辑 /sys/block/sdX/device/queue_depth 文件

我正在尝试使用以下命令增加 SSD 的队列深度值:

echo 64 > /sys/block/sda/device/queue_depth

但我收到以下错误:

bash: echo: write error: Invalid argument

我尝试使用tee甚至像vimand 这样的编辑器,nano但仍然看到这个错误。此服务器上有 4 个 SSD (sd[ad]),并且所有 SSD 都会发生此错误。

操作系统是操作系统7内核版本是3.10.0-327.18.2.el7.x86_64

答案1

也许你的SSD不支持这个队列深度?

# hdparm -I /dev/sda

/dev/sda:

ATA device, with non-removable media
    Model Number:       M4-CT064M4SSD2                          
[...]
Capabilities:
    LBA, IORDY(can be disabled)
    Queue depth: 32

或者,尝试使用1, 2, 3, ... 来查找内核允许您使用的最大队列深度。

如果它不允许您设置高于 的值1,则可能您的内核通常禁用了 NCQ。检查或/proc/cmdline类似libata.force=noncq

存在一些与 NCQ 相关的错误,尤其是 SSD。您应该做一些基准测试来检查 NCQ 是否对您有任何好处,并进行一些测试(排队的)TRIM 是否可以在不损坏数据的情况下工作(当前内核仅通过将某些设备列入黑名单来修复这些问题)。

相关内容