VMMのI/Oスケジューラ (に関する一般論と XenServer の場合)

I/O負荷が高い時に、キャッシュに入ってないコマンドを実行しようとするとひっかかる。なんでかなーと思って調べてみたら、XenServer のデフォルトは以下のとおりだった。

  • hdparm -W 1
  • dom0 の I/O エレベータは noop
  • domU の I/O エレベータは noop

SATA 向きの設定じゃないですね (しかも hdparm -W 0 だけは設定変えてた)。ということで、とりあえず以下のとおり変更。

  • hdparm -W 0
  • dom0 の I/O エレベータは deadlinecfqnoop*1
  • domU の I/O エレベータは cfq

参考にしたのは Does Virtualization Make Disk Scheduling Passé? (pdf)。わかりやすくていい論文。

*1:22:11追記: なんかバッファが2段になるせいか書込みがいっぱいたまってしまうみたいだったのでdom0はnoopにした