System information

Tuning I/O Performance 163
/sys/block/<device>/queue/iosched/quantum
This option limits the maximum number of requests that are being processed
by the device at once. The default value is 4. For a storage with several disks,
this setting can unnecessarily limit parallel processing of requests. Therefore,
increasing the value can improve performance although this can cause that the
latency of some I/O may be increased due to more requests being buffered in-
side the storage. When changing this value, you can also consider tuning /sys/
block/<device>/queue/iosched/slice_async_rq (the default val-
ue is 2) which limits the maximum number of asynchronous requests—usually
writing requests—that are submitted in one time slice.
/sys/block/<device>/queue/iosched/low_latency
For workloads where the latency of I/O is crucial, setting /sys/block/<de
vice>/queue/iosched/low_latency to 1 can help.
13.2.2 NOOP
A trivial scheduler that just passes down the I/O that comes to it. Useful for check-
ing whether complex I/O scheduling decisions of other schedulers are not causing I/O
performance regressions.
In some cases it can be helpful for devices that do I/O scheduling themselves, as in-
telligent storage, or devices that do not depend on mechanical movement, like SSDs.
Usually, the DEADLINE I/O scheduler is a better choice for these devices, but due to
less overhead NOOP may produce better performance on certain workloads.
13.2.3 DEADLINE
DEADLINE is a latency-oriented I/O scheduler. Each I/O request has got a dead-
line assigned. Usually, requests are stored in queues (read and write) sorted by sec-
tor numbers. The DEADLINE algorithm maintains two additional queues (read and
write) where the requests are sorted by deadline. As long as no request has timed out,
the “sector” queue is used. If timeouts occur, requests from the “deadline” queue are
served until there are no more expired requests. Generally, the algorithm prefers reads
over writes.
This scheduler can provide a superior throughput over the CFQ I/O scheduler in cas-
es where several threads read and write and fairness is not an issue. For example, for