Hello.
I already wrote to qemu mail list and didn't find an answer.
I've setup qemu / kvm on Debian Wheezy to host some Debian Jessie guests.
I create disk like this:
virsh vol-create-as --pool default --name root.vhd --capacity 50G --format vpc
Then create a virtual with this:
virt-install --connect qemu:///system \
--ram 2048 \
--vcpus=4 \
--cpuset=auto \
--pxe \
--os-type linux \
--boot network,hd,menu=on \
--disk vol=default/root.vhd,device=disk,bus=virtio,cache=writethrou gh \
--network=bridge:br0,model=virtio \
--noautoconsole \
--hvm \
--autostart \
--check-cpu
After setting up the system I've got poor disk performance.
Using
time dd if=/dev/zero of=/tmp/test oflag=direct bs=64k count=16000
I get 1048576000 bytes (1.0 GB) copied, 397.473 s, 2.6 MB/s
I've changed cache to writeback and got 20MB/s with this test. But copying a file to this virtual using samba gives me no more of 2 MB/s.
I've tested network connectivity with iperf and got around 750Mbit/s, which I think is satisfactory.
I will not want to use raw devices, as it is not self expanded and will use whole space regardless of how much real data occupy.
libvirtd (libvirt) 0.9.12.3
Is there a way to increase disk speed to at least 50MB/s ?
As suggested by other to test:
I've created a raw disk of 10GB and attached to VM and mounted it. The speed is same - 2MB.
As per same cifs/samba access to / on the host - the speed is 180MB+, as there are 2 network interfaces in alb bond.
> time dd if=/dev/zero of=/vdisks/test oflag=direct bs=64k count=16000
16000+0 records in
16000+0 records out
1048576000 bytes (1.0 GB) copied, 0.970587 s, 1.1 GB/s
real 0m0.972s
user 0m0.008s
sys 0m0.856s
/vdisks reside on a raidz2 zfs pool via PCI-E hardware raid used in IT mode to allow ZFS software raid.
> /usr/bin/kvm --version
QEMU emulator version 1.1.2 (qemu-kvm-1.1.2+dfsg-6+deb7u19, Debian), Copyright (c) 2003-2008 Fabrice Bellard
> virsh dumpxml YOURVMNAME > tmp.xml
<domain type='kvm' id='10'>
<name>srv</name>
<uuid>c23810c8-fe96-12df-5769-5a7a80c3c35f</uuid>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>4</vcpu>
<os>
<type arch='x86_64' machine='pc-1.1'>hvm</type>
<boot dev='hd'/>
<boot dev='network'/>
<bootmenu enable='yes'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='vpc' cache='writeback'/>
<source file='/vdisks/root.vhd'/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<controller type='usb' index='0'>
<alias name='usb0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:de:83:2d'/>
<source bridge='br0'/>
<target dev='vnet0'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/4'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/4'>
<source path='/dev/pts/4'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='59081' autoport='no' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</memballoon>
</devices>
<seclabel type='none'/>
</domain>
Any help please.