以下省略!

タイダルウ(ry ほぼ毎日1記事執筆運動実施中。 ※記事に広告(アフィリエイト)リンクを掲載している場合があります。

SSDに対して適用しているdeadlineスケジューラのパラメータをSSD向けに軽く調節してます

https://rita.xyz/blog/irasutoya/computer_ssd-w200-zf.png以前rc.local云々の記事を書いたが、rc.localに書いた内容についての詳細について書いてみるアレ。
deadlineスケジューラの設定はデフォルトでHDD向けに調整されているので、SSD向けにパラメータをちょっと弄ってパフォーマンスを向上させる。
参考URLのページではfifo_batchの調整で効果が見込めるとあったのでfifo_batchを1にセットしてある。ヘッド位置を考慮する必要もないのでfront_mergesも無効化。

以下がrc.localの内容。deadlineスケジューラへの切り替えはudevルール(下記に記載)でSSD(sda)にのみ適用するようにしてあるので、rc.localではfifo_batchとfront_mergesを弄るだけにしている。

/etc/rc.local

#!/bin/sh

echo 0 > /sys/block/sda/queue/iosched/front_merges
echo 1 > /sys/block/sda/queue/iosched/fifo_batch

/etc/udev/rules.d/60-schedulers.rules

ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

蛇足

  • SSDの場合noopもいいらしいが、なんか心配な気もするので使っていない。
  • read_expireなどの他のパラメータは環境に応じて微調整が必要なのでいじっていない。