次のコマンドを使用して、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
カーネル2
が3
使用を許可する最大のキュー深度を見つけてください。
より大きい値を設定できない場合は1
、カーネルで NCQ が全般的に無効になっている可能性があります。または同様のもの/proc/cmdline
を確認してくださいlibata.force=noncq
。
特に SSD に関しては、NCQ 関連のバグがいくつかありました。NCQ が何らかのメリットをもたらすかどうかを確認するためにベンチマークをいくつか実行し、(キューに入れられた) TRIM がデータを破損することなく機能するかどうかをテストする必要があります (現在のカーネルは、一部のデバイスをブラックリストに登録することによってのみこれらの問題を修正します)。