A.J*_*sin 5 linux ssd scsi sysfs block-device
我正在尝试使用以下命令增加 SSD 的队列深度值:
echo 64 > /sys/block/sda/device/queue_depth
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
bash: echo: write error: Invalid argument
Run Code Online (Sandbox Code Playgroud)
我尝试使用tee甚至像这样的编辑器vim,nano但仍然看到此错误。此服务器 (sd[ad]) 上有 4 个 SSD,并且所有这些 SSD 都会发生此错误。
操作系统为CentOS 7,内核版本为3.10.0-327.18.2.el7.x86_64。
也许你的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
Run Code Online (Sandbox Code Playgroud)
或者,尝试使用1, 2, 3, ... 来查找内核允许您使用的最大队列深度。
如果它不允许您设置高于 的值1,则可能您的内核通常禁用了 NCQ。检查/proc/cmdline或libata.force=noncq类似。
存在一些与 NCQ 相关的错误,尤其是 SSD。您应该做一些基准测试来检查 NCQ 是否对您有任何好处,并进行一些测试(排队的)TRIM 是否可以在不损坏数据的情况下工作(当前内核仅通过将某些设备列入黑名单来修复这些问题)。