Linux Today: Linux News On Internet Time.

More on LinuxToday

Tuning CFQ - What Station is That?

Oct 15, 2009, 07:33 (0 Talkback[s])
(Other stories by Jeffrey B. Layton)

"Recall that the CFQ scheduler was written in response to some potential problems with the deadline controller. In particular, from an interview with Jens Axboe, the developer of CFQ, deadline, and a few other IO schedulers, Jens stated, "While deadline worked great from a latency and hard drive perspective, it had no concept of individual process fairness." So one process that was doing a great deal of IO could cause other applications to have their IO starve.

"The CFQ scheduler created the concept of having queues for each process. These queues are created as needed for a particular process. Also, while perhaps not new, the scheduler divided the concept of IO into two parts, Synchronous IO and Asynchronous IO (AIO). Synchronous IO is important because the application stops running until the IO request is finished. In other words, synchronous IO "blocks" the execution of the application until it is done. This is fairly common in read operations because an application may need to read some input data prior to continuing execution.

"On the other hand, AIO allows an application to continue operation because the result of the IO operation returns immediately. So rather than wait for confirmation that the application's IO request has succeeded as in the case of synchronous IO, for AIO the result is returned immediately even if the IO operation has not yet finished. This is potentially very useful for write operations and allows the application to overlap IO with computation (helps efficiency - that is, it can improve run time)."

Complete Story

Related Stories: