title: Selecting a Linux I/O Scheduler
body: <p>I read that it's supposedly possible to change the I/O scheduler for a particular device on a running kernel by writing to /sys/block/[disk]/queue/scheduler.  For example I can see on my system:</p>
  
  <pre><code>anon@anon:~$ cat /sys/block/sda/queue/scheduler 
  noop anticipatory deadline [cfq] 
  </code></pre>
  
  <p>that the default is the completely fair queuing scheduler.  What I'm wondering is if there is any use in including all four schedulers in my custom kernel.  It would seem that there's not much point in having more than one scheduler compiled in unless the kernel is smart enough to select the correct scheduler for the correct hardware, specifically the 'noop' scheduler for flash based drives and one of the others for a traditional hard drive.</p>
  
  <p>Is this the case?</p>