< Back to index
CFQ, also known as "Complete Fair Queuing", is an I/O scheduler for the Linux kernel.
CFQ works by placing synchronous requests submitted by processes into a number of per-process queues and then allocating timeslices for each of the queues to access the disk. The length of the time slice and the number of requests a queue is allowed to submit, depends on the IO priority of the given process. Asynchronous requests for all processes are batched together in fewer queues, one per priority. While CFQ does not do explicit anticipatory IO scheduling, it achieves the same effect of having good aggregate throughput for the system as a whole, by allowing a process queue to idle at the end of synchronous IO there by "anticipating" further close IO from that process. It can be considered a natural extension of granting IO time slices to a process.
CFQ I/O scheduler made its way into the mainline kernel since the release of kernel 2.6.6 stable. It was an optional I/O scheduler until it became the default scheduler in the 2.6.18 release.
Compare
* Noop scheduler
* Anticipatory scheduler
* Deadline scheduler
Sources
* [http://kerneltrap.org/node/view/580 Short detail about CFQ]
This entry uses material from from Wikipedia, the leading user-contributed encyclopedia. It is licensed under the GNU Free Documentation License. Disclaimer.