LinuxConf.Au: CFQ IO Scheduler

Posted in Conferences, Operating Systems, Science on March 11, 2007

LinuxConf.Au: CFQ IO Scheduler

IO performance is one of the most critical aspects of a wide variety of systems. On the server side, IO bound workloads are plentiful, and on the desktop, IO latencies are often one of the most important characteristics of a responsive system.

The problem with IO scheduling (like most other scheduling), is that there are no correct answers; or, at least, none that we can find in a bounded time. Often the IO scheduler has to work without knowledge of what the applications are doing and what their requirements are. To make matters even worse, the IO scheduler has little idea on what the underlying storage subsystem looks like.

This talk presents the CFQ (Complete Fair Queueing) IO scheduler as designed and implemented for Linux and how it has evolved over time. It details the latency and bandwidth design, and how that is coupled to the fairness aspect. I'll discuss how CFQ attempts to adjust to workloads and detect properties of the hardware, and compare that to the other Linux IO schedulers. CFQ has a lot of advanced features not seen elsewhere, like proper support for IO priorities, which will be explained.

Watch Video Watch Video on External Site

Tags: Conferences, OS, Linux, Science, Lectures, LinuxConf.AU, Computer Science