I/O scheduler
also: disk scheduler, block I/O scheduler
A kernel component that decides the order in which read/write requests to block devices (disks) are processed. It optimizes throughput, latency, and fairness by reordering I/O operations.
The I/O scheduler sits between the Linux kernel and physical storage devices, managing how disk requests are queued and executed. Instead of processing requests in strict FIFO order, it intelligently reorders them to reduce seek time—the physical movement of disk heads—which dramatically improves performance.
Modern Linux systems support multiple I/O schedulers, each optimized for different workloads. The deadline scheduler prioritizes latency-sensitive operations, noop passes requests directly to the device (useful for SSDs), and mq-deadline handles high concurrency. You can check the active scheduler for a device via /sys/block/sda/queue/scheduler.
Example: If an application makes requests to read blocks 1000, 500, and 900, the scheduler might reorder them as 500, 900, 1000 to minimize disk head movement, even though the application requested them differently.