As of Red Hat Enterprise Linux 5, it is possible to change the I/O scheduler for a given block device on the fly. This makes it possible to set the CFQ scheduler as the system default. It is recommended to set the device to use the anticipatory or noop schedulers, which can improve throughput.
To set a specific scheduler, simply do this:
echo SCHEDNAME > /sys/block/DEV/queue/scheduler
where SCHEDNAME is the name of a defined I/O scheduler, and DEV is the device name (sda, sdb, hda, etc.)
The list of defined schedulers can be found by simply doing a cat /sys/block/DEV/queue/scheduler. The list of valid names will be displayed with the selected scheduler in brackets. For example, assuming the device of interest is the SCSI device sda:
# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
# echo anticipatory > /sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
noop [anticipatory] deadline cfq
Adding the line “echo SCHEDNAME > /sys/block/DEV/queue/scheduler into the file /etc/rc.local will enable the I/O scheduler to be set on the next system booting.
For more detail information about I/O scheduler can be found at /usr/share/doc/kernel-*/Documentation/block
http://kbase.redhat.com/faq/docs/DOC-7539