A disk performance test is done using bonnie++ (1.03d-6.1) passing it the option -r 4096 (which is the actual (available) RAM size of host and guest.
The chart below shows write performance for character based writes, block based writes, and random access writes. The scheduler for host and guest are given in the form ‘<host>-<guest>’. For example, deadline-cfq denotes that the host uses the deadline scheduler and the guest uses the cfq scheduler.
The results from the reading test are shown below:
From the tests it is clear that the scheduler does not have such a significant effect on performance, although the combination deadline-noop seems to have a slight advantage. The results for random seeks are also comparable for all configurations and are around 0.3KB/s.
Next we take a look at the effect of paraviritualized drivers (virtio), and the use of both IDE and SCSI emulation. Also, the performance of the host is measured.
These results show that the effects of disk emulation are really big, especially when it comes to write performance. In addition, SCSI emulation performs significantly worse than IDE emulation for writes. What is also striking is that the host appears to perform slightly worse than the guest using virtio. One explanation for this is that the host performs caching for the guest so that additional optimizations can take place that are unavailable on the host. This is in effect comparable to giving the guest some extra memory for caching. A similar effect can be seen by reducing the ram size used by bonnie++ (-r option) further which will also show an increased performance.