Redhat I/O Scheduler Configuration in a Virtual Machine.

Dali-melting-time-wall-clock The Linux kernel controls disk I/O scheduling, and is responsible for its optimization. One of the ways that it does this is via an I/O elevator to reorder and schedule pending I/O requests in order to minimize the time spent moving the
disk head. This reduction in movement results in a reduction in disk seek time which in turn,  maximizes hard
disk throughput.

However, because of the fact that ESX is its own built in elevator, the Linux kernel’s elevator is not needed, and in fact can hurt disk performance. So its best to disable the elevator inside your linux VMs.

One way to do this is to edit your /etc/grub.conf and add “elevator=noop” as seen below. This will require a reboot to take affect.

title CentOS (2.6.18-53.el5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ noapic acpi=off rhgb quiet notsc elevator=noop
        initrd /boot/initrd-2.6.18-53.el5.img

To make the change on the fly to a running Linux VM run the command below, where device is your boot disk

echo noop > /sys/block/DEVICE/queue/scheduler

Additional Information:

http://www.redhat.com/magazine/008jun05/features/schedulers/

http://kbase.redhat.com/faq/docs/DOC-7539

http://lonesysadmin.net/2008/02/21/elevatornoop/

http://www.redhat.com/docs/wp/performancetuning/iotuning/iosubsystem-scheduler-selection.html

http://www.linuxjournal.com/article/6931

2 thoughts on “Redhat I/O Scheduler Configuration in a Virtual Machine.

  1. on my system:
    title Red Hat Enterprise Linux Server (2.6.18-274.7.1.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-274.7.1.el5 ro root=/dev/vgSystem/lv_root rhgb quiet elevator=noop crashkernel=128M@16M
    initrd /initrd-2.6.18-274.7.1.el5.img

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.