At the request of Phoronix readers, and that the default I/O scheduler may change, here's a comparison of the CFQ, Deadline, and Noop schedulers on three systems and covering both rotating media (HDD) and solid-state storage (SSDs).
The hardware used for the comparison was an Intel Core 2 Duo T9300 laptop with a 100GB Hitachi HTS72201 SATA HDD, an Intel Core i5 2520M Sandy Bridge system with a 160GB Intel SSD, and an Intel Core i7 720QM Clarksfield notebook also with an Intel 160GB X-25 SSD. This article is primarily about publishing Linux desktop scheduler results while, hardware permitting, in another article will be workstation/server scheduler results.
All three systems were running Ubuntu 12.04 (x86_64) and formatted to EXT4 while the Linux kernel was upgraded to a Linux 3.4 kernel development snapshot.
CFQ, the Completely Fair Queuing scheduler, is the default scheduler for the mainline Linux kernel is what most distributions honor as the default.
The Noop scheduler is the simplest scheduler and based upon a FIFO model.
The Deadline scheduler attempts to guarantee the service start time of I/O requests.
The possible change coming up would be to move the default from CFQ to Deadline for modern, speedy solid-state drives (e.g. PCI Express-based SSDs).
A variety of disk centric workloads were run via the Phoronix Test Suite to gauge the three systems' performance with the CFQ / Deadline / Noop schedulers on Linux 3.4.