In this recipe, we are going to cover some of the disk performance optimization techniques by selecting an I/O scheduler and tuning the block I/O using Linux control groups, for the virtual guest and the host.
There are three I/O schedulers to choose from on the host OS and in the KVM instance:
noop: This is one of the simplest kernel schedulers; it works by inserting all incoming I/O requests into a simple FIFO (First In, First Out) queue. This scheduler is useful when the host OS should not attempt to reorder I/O requests when multiple virtual machines are running.
deadline: This scheduler imposes a deadline on all I/O operations to prevent starvation of requests, giving priority to read requests, due to processes usually blocking on read operations.
cfq: The main goal of Completely Fair Queuing (CFQ) is to maximize the overall CPU utilization while allowing better interactive performance.
Selecting the right I/O scheduler on the host and guests greatly...