概要
I/Oスケジューラーをnoopに変更しようとしたが実測をみてデフォルトの方がよかったためやめた話
環境はStandard A1 (1コア、1.75GBメモリ)
noopに変更したかった理由
・マイクロソフトのHyper-V on Linux のベストプラクティスにある
Azureも同じであろうと
Use I/O scheduler NOOP for better disk I/O performance
・RDBMSについては、ほとんど(mysql含む)がI/Oスケジューリング機能を持っているため、
OS側では何もしないほうが高速になることが多い
・高速化によく利用される
・デメリットとして大きなファイルを扱うときに
他のタスクがほったらかしになる可能性があるらしい
I/Oスケジューラー変更方法
一時的に変更する場合
root@debian9:/home/shimizu# echo “noop” > /sys/block/sda/queue/scheduler
root@debian9:/home/shimizu# cat /sys/block/sda/queue/scheduler
[noop] deadline cfq
恒久的に変更する場合、debian8であれば
root@debian8:/home/shimizu# vi /etc/default/grub === GRUB_CMDLINE_LINUX_DEFAULT="quiet" ↓ GRUB_CMDLINE_LINUX_DEFAULT="quiet elevator=noop" === root@debian8:/home/shimizut# update-grub Generating grub configuration file ... Linux イメージを見つけました: /boot/vmlinuz-3.16.0-4-amd64 Found initrd image: /boot/initrd.img-3.16.0-4-amd64 完了
だが、debian9での方法わからずorz..
実測してみた
各3回UnixBenchをとってみたが
cfqの最大値 :868.9
noopの最大値:854.8
平均もcfqのほうが高かったためデフォルト(cfq)がよかった