無法編輯 /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 是否可以在不損壞資料的情況下工作(目前核心僅透過將某些裝置列入黑名單來修復這些問題)。

相關內容