For temporary testing, it is possible to change the IO scheduler for one or more individual disks without rebooting the server. To do so, execute the following as root:
echo SCHEDNAME > /sys/block/DEV/queue/scheduler
SCHEDNAME with the scheduler name (noop or deadline) and
DEV with the device the scheduler should be used on (i.e. sdc).
If you want temporarily change the scheduler for multiple disks, you will need to run the “echo” command (above) against each device; replacing the SCHEDNAME and DEV; for each device.
Note: when the server is restarted, the default scheduler will return for each of these devices.
More permanent change across all devices
To implement a non-cfq scheduler across all disks, that remains after the host is restarted, you will need to:
– Go into YaST
– Select “System” -> “Boot Loader” and press <enter>
– Go to “Kernel Parameters” tab and go into the “Optional Kernel Command Line Parameter” section.
– Add “elevator=SCHEDNAME” (where SCHEDNAME is the scheduler desired).
– Save/OK and exit out of YaST.
– Restart the server to activate the new scheduler.
This will turn off the SLES’s disk IO optimization making the virtual machine’s IO a FIFO (first in, first out) to the underlying storage system. All IO optimizations, with this setting, will be accomplished on the storage system.