Linux IO scheduling controls the algorithm for processing disk IO requests in appropriate order. Choosing adequate algorithm may have big impact on the IO performance. IO scheduling is determined by the Linux kernel. From the 2.6 there are four IO schedulers:
elevator= cfq | deadline | noop | as
With 2.6 kernels, it is also possible to change the scheduler for particular devices
during runtime:
# echo deadline > /sys/block/sdb/queue/scheduler
Steve Shaw and Martin Bach writes:
"CFQ is the default scheduler for Oracle Enterprise Linux. It balances IO requests across all available resources. The Deadline scheduler attempts to minimize the latency of IO requests with a round robin–based algorithm for real-time performance. The Deadline scheduler is often considered more applicable in a data warehouse environment, where the IO profile is biased toward sequential reads. The NOOP scheduler minimizes host CPU utilization by implementing a FIFO queue, and it can be used where IO performance is optimized at the block-device level. The Anticipatory scheduler is used for aggregating IO requests where the external storage is known to be slow, but at the cost of latency for individual IO requests. "
But in the 6.2 the default scheduler in was changed:
"Default IO scheduler
- Completely Fair Queuing (CFQ)
- Deadline
- NOOP
- Anticipatory
elevator= cfq | deadline | noop | as
With 2.6 kernels, it is also possible to change the scheduler for particular devices
during runtime:
# echo deadline > /sys/block/sdb/queue/scheduler
Steve Shaw and Martin Bach writes:
"CFQ is the default scheduler for Oracle Enterprise Linux. It balances IO requests across all available resources. The Deadline scheduler attempts to minimize the latency of IO requests with a round robin–based algorithm for real-time performance. The Deadline scheduler is often considered more applicable in a data warehouse environment, where the IO profile is biased toward sequential reads. The NOOP scheduler minimizes host CPU utilization by implementing a FIFO queue, and it can be used where IO performance is optimized at the block-device level. The Anticipatory scheduler is used for aggregating IO requests where the external storage is known to be slow, but at the cost of latency for individual IO requests. "
But in the 6.2 the default scheduler in was changed:
"Default IO scheduler
For the Unbreakable Enterprise Kernel, the default IO scheduler is the 'deadline' scheduler.
For the Red Hat Compatible Kernel, the default IO scheduler is the 'cfq' scheduler. "
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.