/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や などのエディターも使用してみましたvimが、nanoそれでもこのエラーが表示されます。このサーバー (sd[ad]) には 4 つの SSD があり、そのすべてでこのエラーが発生します。

OSはセントOS7カーネルバージョンは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カーネル23使用を許可する最大のキュー深度を見つけてください。

より大きい値を設定できない場合は1、カーネルで NCQ が全般的に無効になっている可能性があります。または同様のもの/proc/cmdlineを確認してくださいlibata.force=noncq

特に SSD に関しては、NCQ 関連のバグがいくつかありました。NCQ が何らかのメリットをもたらすかどうかを確認するためにベンチマークをいくつか実行し、(キューに入れられた) TRIM がデータを破損することなく機能するかどうかをテストする必要があります (現在のカーネルは、一部のデバイスをブラックリストに登録することによってのみこれらの問題を修正します)。

関連情報