blob: 3b2612e342f184664d0bb9d5a4cb941f21326825 [file] [log] [blame]
Alan D. Brunelle23c76982007-10-15 13:22:26 +02001To choose IO schedulers at boot time, use the argument 'elevator=deadline'.
Wang Sheng-Huib3196682011-11-04 11:22:33 -07002'noop' and 'cfq' (the default) are also available. IO schedulers are assigned
3globally at boot time only presently.
Alan D. Brunelle23c76982007-10-15 13:22:26 +02004
5Each io queue has a set of io scheduler tunables associated with it. These
6tunables control how the io scheduler works. You can find these entries
7in:
8
9/sys/block/<device>/queue/iosched
10
11assuming that you have sysfs mounted on /sys. If you don't have sysfs mounted,
12you can do so by typing:
13
14# mount none /sys -t sysfs
15
Valdis Kletnieks73af9942006-04-19 09:23:09 +020016As of the Linux 2.6.10 kernel, it is now possible to change the
17IO scheduler for a given block device on the fly (thus making it possible,
18for instance, to set the CFQ scheduler for the system default, but
Randy Dunlap17a9e7b2010-11-11 12:09:59 +010019set a specific device to use the deadline or noop schedulers - which
Valdis Kletnieks73af9942006-04-19 09:23:09 +020020can improve that device's throughput).
21
22To set a specific scheduler, simply do this:
23
24echo SCHEDNAME > /sys/block/DEV/queue/scheduler
25
26where SCHEDNAME is the name of a defined IO scheduler, and DEV is the
27device name (hda, hdb, sga, or whatever you happen to have).
28
29The list of defined schedulers can be found by simply doing
30a "cat /sys/block/DEV/queue/scheduler" - the list of valid names
31will be displayed, with the currently selected scheduler in brackets:
32
33# cat /sys/block/hda/queue/scheduler
Randy Dunlap17a9e7b2010-11-11 12:09:59 +010034noop deadline [cfq]
35# echo deadline > /sys/block/hda/queue/scheduler
Valdis Kletnieks73af9942006-04-19 09:23:09 +020036# cat /sys/block/hda/queue/scheduler
Randy Dunlap17a9e7b2010-11-11 12:09:59 +010037noop [deadline] cfq