Hi all,

I'm running a VM using libvirt+KVM and I have a disk performance issue.

The host is the following:
4 cores Intel Xeon 5140@2.33 GHz, 16 GB of RAM, SATA HDD, OS Debian Wheezy, libvirt 0.9.12-11, QEMU-KVM 1.1.2+dfsg-2.

The guest:
1 CPU, 2 GB RAM running Debian 7.0, image in compressed qcow2 format.

When I try do run "dd if=/dev/zero of=io.test bs=32768k count=40" I get around 500 MB/s on bare metal, while only around 30 MB/s inside the VM.

I'm trying to get something more out of the virtualization layer, I hope that there's room for improvement.

I'm using virtio, I aready set cache='none' and io='native' in the domain definition. Both host and guest are using deadline as I/O scheduler. The VM uses an ext4 filesystem, while the image is saved on an ext3 disk. I mounted the host and guest filesystems specifying nodiratime and noatime options. Even if I convert the image to raw format nothing changes.
I didn't mess with iotune nor blockio.

Is there something that I overlooked or any other suggestion?

Thanks in advance for your help.


A refund for defective software might be nice, except it would bankrupt the entire software industry in the first year.

Andrew S. Tanenbaum, Computer Networks, 2003, Introduction, page 14

Linux registered user #463400