/sys/block/sdX/device/queue_length ファイルを編集できません。

/sys/block/sdX/device/queue_length ファイルを編集できません。

次のコマンドを使用して、SSDのキュー深度値を増やそうとします。

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

ただし、次のエラーが発生します。

bash: echo: write error: Invalid argument

teevimようなエディタを試しましたが、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カーネル23使用できる最大キュー深度を見つけます。

それより高い値を設定できない場合、1カーネルは通常NCQを無効にした可能性があります。確認または/proc/cmdline類似していますlibata.force=noncq

特にSSDにはNCQ関連のバグがあります。 NCQがあなたに役立つことを確認するためにいくつかのベンチマークを実行する必要があり、TRIMがデータを損なうことなく動作できることをテストする必要があります(現在のカーネルは、これらの質問に対して特定のデバイスをブラックリストに追加することによってこの問題を解決します)。

関連情報