- Deadline scheduler
-
Deadline scheduler is an I/O scheduler for the Linux kernel which was written in 2002 by Jens Axboe.
Overview
The goal of the Deadline scheduler is to guarantee a start service time for a request.[1] It does that by imposing a deadline on all I/O operations to prevent starvation of requests. It also maintains two deadline queues, in addition to the sorted queues (both read and write). Deadline queues are basically sorted by their deadline (the expiration time), while the sorted queues are sorted by the sector number.
Before serving the next request, the Deadline scheduler decides which queue to use. Read queues are given a higher priority, because processes usually block on read operations. Next, the Deadline scheduler checks if the first request in the deadline queue has expired. Otherwise, the scheduler serves a batch of requests from the sorted queue. In both cases, the scheduler also serves a batch of requests following the chosen request in the sorted queue.
By default, read requests have an expiration time of 500 ms, write requests expire in 5 seconds.
An early version of the scheduler was published by Axboe in September 2002.[2]
The kernel documentation suggest this is the preferred scheduler for database systems, especially with Tagged Command Queuing (TCQ) aware disks, or any system with large numbers of disks.[3]
Other I/O schedulers
References
- ^ Jens Axboe (11 November 2002). "Deadline IO scheduler tunables". Linux kernel documentation. http://www.mjmwired.net/kernel/Documentation/block/deadline-iosched.txt. Retrieved 20 November 2011.
- ^ "A Deadline I/O Scheduler". Kernel trap blog. 26 September 2002. http://kerneltrap.org/node/431. Retrieved 20 November 2011.
- ^ "Linux IO Scheduler". Wiki. Waikato Linux Users Group. 16 December 2010. http://www.wlug.org.nz/LinuxIoScheduler. Retrieved 20 November 2011.
Categories:- Linux stubs
- Disk scheduling algorithms
Wikimedia Foundation. 2010.