SSDのパラメーターを設定するには、udevを使用することをお勧めします。この方法により、SSDなどにより適した特定のキュースケジューラを構成できます。また、多くのパラメーターに基づいて、一部のデバイスにのみパラメーターを適用することもできます。
次のコマンドを実行することにより、デバイスと一致するために必要な特定の属性(ディスクモデルとメーカーなど)を取得できます。
udevadm info -a -p /sys/block/sda
ブロックデバイスのすべてのATTRペアを確認します。
もう1つの利点は、プラガブルディスク(エンクロージャーまたはホットスワップベイなど)のパラメーターを設定できることです。設定は、デバイスパラメーターが一致する場合、すべての新しいデバイスに適用されます。
以下は、Intel SSDに特定のスケジューラー、目的の先読み値(4096ブロック= 2048 kb)を適用し、他のすべてのSSDに別のスケジューラーを適用する例です。
cat /etc/udev/rules.d/99-ssd.rules
# http://unix.stackexchange.com/a/71409/36574
# Setting specific kernel parameters for a subset of block devices (Intel SSDs)
SUBSYSTEM=="block", ATTRS{model}=="Intel SSDSC*", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="2048", ATTR{queue/scheduler}="deadline"
# for all other non-rotational block devices set a scheduler to 'noop' and readahead to 1024KB
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="1024", ATTR{queue/scheduler}="noop"
ファイルを保存した後、ルールがデバイスと一致するかどうか、およびudevがudevadmを使用して何を行うかをテストできます。
udevadm test --action=add /sys/block/sda
これにより、udevがロードするすべてのルール、一致するもの、一致しないもの、およびデバイスが接続されたときにudevが行う決定が出力されます。
お役に立てれば。