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で動かす場合は
NOOPDeadline のほうがパフォーマンス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に変更するか)が必要そうです。

 

 

以上、今日の気づきでした。