以前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などの他のパラメータは環境に応じて微調整が必要なのでいじっていない。