Azure + debian + I/Oスケジューラ

概要

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)がよかった

2015-12-24_231256

cfq

メニューを閉じる