Thursday, January 17, 2013

I/O Elevator Comparision Using CALIBRATE_IO

This is a comparison of three IO elevators namely Completely Fair Queuing (CFQ) which is the default one on Linux, Deadline and NOOP. Anticipatory elevator wasn't used though it's also one of the IO elevators on RHEL. Current elevator could be found out (on RHEL) with
cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
The load injector in this case is the DBMS_RESOURCE_MANAGER.CALIBRATE_IO. System is a two node RAC (with Dell EqualLogic SAN) running on RHEL 5(2.6.18-308.24.1.el5). Test was simply to set the elevator on the /etc/grub.conf (no configuration changes on the elevator parameters), reboot the server after each time elevator is set and once all nodes and DB instances are up run the CALIBRATE_IO function (same set of inputs were used in all cases). This was a new build and nothing else (application related) was running on the system. By no means this is an extensive test, just wanted to see what will be effect changing elevator alone (all others remaining the same).
Below is the output from the three runs.
ELEVATOR     MAX_IOPS   MAX_MBPS  MAX_PMBPS    LATENCY DURATION     START_TIME                     END_TIME
---------- ---------- ---------- ---------- ---------- ------------ ------------------------------ ------------------------------
cfq              4970        206        171         11 7:58.585988  17-JAN-13 10.35.25.114131 AM   17-JAN-13 10.43.23.700119 AM
deadline         4988        224        144         11 5:32.195376  17-JAN-13 01.34.14.094488 PM   17-JAN-13 01.39.46.289864 PM
noop             5016        206        145         11 7:14.051605  17-JAN-13 02.05.07.657428 PM   17-JAN-13 02.12.21.709033 PM



It seems each elevator is a winner in some category.
MAX IOPS (winner noops)

MAX MBPS (winner deadline)

MAX PMBPS (winner cfq)