CFQ to become the default I/O scheduler in 2.6.18
Judging by this commit, CFQ (Complete Fair Queuing) I/O scheduler will become the default one in the upcoming 2.6.18 kernel. For a long time, anticipatory scheduler has been the default, although even back in late 2004 there was some thinking about replacing it with CFQ. And it seems the time has finally come. CFQ scheduler has been gaining adoption since then, to the point that it's the default I/O scheduler for RHEL 4, Suse, and other distros.
One of the coolest things about CFQ is that it features I/O priorities (since 2.6.13). That means you can set the I/O priority of a process so you can avoid that a process that does too much I/O (daily
updatedb) starves the rest of the system, or give extra priority to a process that shouldn't be starved by other processes, by using the
ionice tool included in
schedutils (since version 1.5.0).
If you find any problems with the new default scheduler, you can still continue using the AS scheduler, by switching to it at runtime (
echo anticipatory > /sys/block/<disk>/queue/scheduler) or by using the
elevator=as boot option.
Learn more about Linux I/O schedulers from this great whitepapers: