LinuxのI/OスケジューラについてのKBを見つけました。
Linux 2.6 kernel-based virtual machines experience slow disk I/O performance
http://kb.vmware.com/kb/2011861
Linux 2.6(RHEL5/6, CentOS5/6, OEL5,6 などなど)をESXiで動かす場合は
NOOPか DeadlineのほうがパフォーマンスUPするらしいです。
Linux 2.6系では
下記の4つのI/Oスケジューラがあります。
Completely Fair Queuing (cfq)
NOOP (noop)
Anticipatory (anticipatory)
Deadline (deadline)
そのなかで、Linux2.6系のデフォルトだと
Completely Fair Queuing (CFQ) というI/Oスケジューラが使われています。
ということで、ふとLinux2.6系であるOracle Linux 6.2 のI/Oスケジューラを確認してみました。
[root@oel62 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.2 (Santiago)
[root@oel62 ~]# cat /etc/oracle-release
Oracle Linux Server release 6.2
[root@oel62 ~]# uname -a
Linux oel62 2.6.32-300.3.1.el6uek.x86_64 #1 SMP Fri Dec 9 18:57:35 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@oel62 ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
→Oracle LinuxのUEKというカーネルを使用している場合は、
デフォルトでも deadline でした。
Linux再起動して、RHCK(Redhat互換カーネル)にしてみると・・・
[root@oel62 ~]# uname -a
Linux oel62 2.6.32-220.el6.x86_64 #1 SMP Wed Dec 7 10:41:06 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@oel62 ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
→一般的なLinux2.6と同じ、CFQがデフォルトでした。
OracleLinuxでUEL(デフォルト)を使用している場合は、
そのままでも deadlineスケジューラを使用していて、RHCKに変更する場合は
IOスケジューラが変わるため性能面での考慮(deadlineやnoopに変更するか)が必要そうです。
以上、今日の気づきでした。