web-dev-qa-db-ja.com

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

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

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

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

bash: echo: write error: Invalid argument

teeや、vimnanoなどのエディターを使用してみましたが、それでもこのエラーが表示されます。このサーバーには4つのSSD(sd [a-d])があり、このエラーはそれらすべてで発生します。

OSはCentOS 7で、カーネルバージョンは.10.0-327.18.2.el7.x86_64です。

4
A.Jesin

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

または、123、...を試して、カーネルが使用できる最大キュー深度を見つけてください。

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

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

2
frostschutz