| =================== | 
| Switching Scheduler | 
| =================== | 
|   | 
| Each io queue has a set of io scheduler tunables associated with it. These | 
| tunables control how the io scheduler works. You can find these entries | 
| in:: | 
|   | 
|     /sys/block/<device>/queue/iosched | 
|   | 
| assuming that you have sysfs mounted on /sys. If you don't have sysfs mounted, | 
| you can do so by typing:: | 
|   | 
|     # mount none /sys -t sysfs | 
|   | 
| It is possible to change the IO scheduler for a given block device on | 
| the fly to select one of mq-deadline, none, bfq, or kyber schedulers - | 
| which can improve that device's throughput. | 
|   | 
| To set a specific scheduler, simply do this:: | 
|   | 
|     echo SCHEDNAME > /sys/block/DEV/queue/scheduler | 
|   | 
| where SCHEDNAME is the name of a defined IO scheduler, and DEV is the | 
| device name (hda, hdb, sga, or whatever you happen to have). | 
|   | 
| 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 currently selected scheduler in brackets:: | 
|   | 
|   # cat /sys/block/sda/queue/scheduler | 
|   [mq-deadline] kyber bfq none | 
|   # echo none >/sys/block/sda/queue/scheduler | 
|   # cat /sys/block/sda/queue/scheduler | 
|   [none] mq-deadline kyber bfq |