1251881Speter===================
2251881SpeterSwitching Scheduler
3251881Speter===================
4251881Speter
5251881SpeterEach io queue has a set of io scheduler tunables associated with it. These
6251881Spetertunables control how the io scheduler works. You can find these entries
7251881Speterin::
8251881Speter
9251881Speter	/sys/block/<device>/queue/iosched
10251881Speter
11251881Speterassuming that you have sysfs mounted on /sys. If you don't have sysfs mounted,
12251881Speteryou can do so by typing::
13251881Speter
14251881Speter	# mount none /sys -t sysfs
15251881Speter
16251881SpeterIt is possible to change the IO scheduler for a given block device on
17251881Speterthe fly to select one of mq-deadline, none, bfq, or kyber schedulers -
18251881Speterwhich can improve that device's throughput.
19251881Speter
20251881SpeterTo set a specific scheduler, simply do this::
21251881Speter
22251881Speter	echo SCHEDNAME > /sys/block/DEV/queue/scheduler
23251881Speter
24251881Speterwhere SCHEDNAME is the name of a defined IO scheduler, and DEV is the
25251881Speterdevice name (hda, hdb, sga, or whatever you happen to have).
26251881Speter
27251881SpeterThe list of defined schedulers can be found by simply doing
28251881Spetera "cat /sys/block/DEV/queue/scheduler" - the list of valid names
29251881Speterwill be displayed, with the currently selected scheduler in brackets::
30251881Speter
31251881Speter  # cat /sys/block/sda/queue/scheduler
32251881Speter  [mq-deadline] kyber bfq none
33251881Speter  # echo none >/sys/block/sda/queue/scheduler
34251881Speter  # cat /sys/block/sda/queue/scheduler
35251881Speter  [none] mq-deadline kyber bfq
36251881Speter