我正在嘗試使用以下命令增加 SSD 的佇列深度值:
echo 64 > /sys/block/sda/device/queue_depth
但我收到以下錯誤:
bash: echo: write error: Invalid argument
我嘗試使用tee
甚至像vim
and 這樣的編輯器,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 是否可以在不損壞資料的情況下工作(目前核心僅透過將某些裝置列入黑名單來修復這些問題)。