John Obaterspok
2016-Feb-18 11:59 UTC
Re: [libvirt-users] Sluggish performance with virtio and Win10
2016-02-18 11:25 GMT+01:00 Martin Kletzander <mkletzan@redhat.com>:> On Thu, Feb 18, 2016 at 10:41:42AM +0100, John Obaterspok wrote: > >> 2016-02-18 10:13 GMT+01:00 Martin Kletzander <mkletzan@redhat.com>: >> >> On Thu, Feb 18, 2016 at 08:49:38AM +0100, John Obaterspok wrote: >>> >>> Hello, >>>> >>>> I'm using virt-manager on my F23 box to run a Windows 10 image but the >>>> performance is so bad it's killing me. >>>> >>>> I have "vmx" flag in /proc/cpuinfo >>>> >>>> # lsmod |grep kvm >>>> kvm_intel 167936 6 >>>> kvm 503808 1 kvm_intel >>>> >>>> virtio-win-0.1.112-1.noarch >>>> >>>> But no virtio modules loaded. Should they be loaded nowadays? >>>> >>>> >>> Not on the host AFAIK. >>> >>> The disk format used is vmdk with no caching and native mode. >>> >>>> The io is 100% in windows task manager performing less than 1MB/s >>>> >>>> Any clues? >>>> >>>> >>>> What are the figures from the host? What is qemu doing and what are the >>> other processes and devices doing? >>> >>> >>> What is the best way to find this out? >> >> > {,a,h}top should do for the initial runs, just to see if the block layer > is busy or the CPU is busy or something else is blocking it > >atop seems to indicate that sdd is busy? DSK | sdd | busy 96% | | read 1455 | write 1319 | KiB/r 5 | KiB/w 9 | | MBr/s 0.74 | MBw/s 1.26 | avq 1.01 | | avio 3.43 ms | # mount | grep sdd /dev/sdd2 on /vm type ext4 (rw,relatime,seclabel,data=ordered) guest configuration is below: <domain type='kvm'> <name>win10-box</name> <uuid>d4a67adb-5d30-42f8-b8c6-d3c4598700f2</uuid> <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> <vcpu placement='static'>4</vcpu> <os> <type arch='x86_64' machine='pc-i440fx-2.4'>hvm</type> </os> <features> <acpi/> <apic/> <pae/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> </hyperv> <kvm> <hidden state='on'/> </kvm> <vmport state='off'/> </features> <cpu mode='host-model'> <model fallback='allow'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> <timer name='hypervclock' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/bin/qemu-kvm</emulator> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/usr/share/virtio-win/virtio-win.iso'/> <target dev='hda' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='vmdk' cache='none' io='native'/> <source file='/vm/storage/win10-box.img'/> <target dev='vda' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </disk> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x2'/> </controller> <controller type='pci' index='0' model='pci-root'/> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </controller> <interface type='direct'> <mac address='52:54:00:cc:f0:31'/> <source dev='eno1' mode='bridge'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <input type='tablet' bus='usb'/> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='spice' autoport='yes'/> <sound model='ich6'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </sound> <video> <model type='vga' vram='16384' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </memballoon> </devices> </domain>
Martin Kletzander
2016-Feb-18 14:15 UTC
Re: [libvirt-users] Sluggish performance with virtio and Win10
On Thu, Feb 18, 2016 at 12:59:52PM +0100, John Obaterspok wrote:>2016-02-18 11:25 GMT+01:00 Martin Kletzander <mkletzan@redhat.com>: > >> On Thu, Feb 18, 2016 at 10:41:42AM +0100, John Obaterspok wrote: >> >>> 2016-02-18 10:13 GMT+01:00 Martin Kletzander <mkletzan@redhat.com>: >>> >>> On Thu, Feb 18, 2016 at 08:49:38AM +0100, John Obaterspok wrote: >>>> >>>> Hello, >>>>> >>>>> I'm using virt-manager on my F23 box to run a Windows 10 image but the >>>>> performance is so bad it's killing me. >>>>> >>>>> I have "vmx" flag in /proc/cpuinfo >>>>> >>>>> # lsmod |grep kvm >>>>> kvm_intel 167936 6 >>>>> kvm 503808 1 kvm_intel >>>>> >>>>> virtio-win-0.1.112-1.noarch >>>>> >>>>> But no virtio modules loaded. Should they be loaded nowadays? >>>>> >>>>> >>>> Not on the host AFAIK. >>>> >>>> The disk format used is vmdk with no caching and native mode. >>>> >>>>> The io is 100% in windows task manager performing less than 1MB/s >>>>> >>>>> Any clues? >>>>> >>>>> >>>>> What are the figures from the host? What is qemu doing and what are the >>>> other processes and devices doing? >>>> >>>> >>>> What is the best way to find this out? >>> >>> >> {,a,h}top should do for the initial runs, just to see if the block layer >> is busy or the CPU is busy or something else is blocking it >> >> >atop seems to indicate that sdd is busy? > >DSK | sdd | busy 96% | | read 1455 | write >1319 | KiB/r 5 | KiB/w 9 | | MBr/s 0.74 | MBw/s > 1.26 | avq 1.01 | | avio 3.43 ms | > ># mount | grep sdd >/dev/sdd2 on /vm type ext4 (rw,relatime,seclabel,data=ordered) >And it doesn't do that in any other process on the host? It looks like it's not related to virtualisation...> >guest configuration is below: > ><domain type='kvm'> > <name>win10-box</name> > <uuid>d4a67adb-5d30-42f8-b8c6-d3c4598700f2</uuid> > <memory unit='KiB'>4194304</memory> > <currentMemory unit='KiB'>4194304</currentMemory> > <vcpu placement='static'>4</vcpu> > <os> > <type arch='x86_64' machine='pc-i440fx-2.4'>hvm</type> > </os> > <features> > <acpi/> > <apic/> > <pae/> > <hyperv> > <relaxed state='on'/> > <vapic state='on'/> > <spinlocks state='on' retries='8191'/> > </hyperv> > <kvm> > <hidden state='on'/> > </kvm> > <vmport state='off'/> > </features> > <cpu mode='host-model'> > <model fallback='allow'/> > </cpu> > <clock offset='localtime'> > <timer name='rtc' tickpolicy='catchup'/> > <timer name='pit' tickpolicy='delay'/> > <timer name='hpet' present='no'/> > <timer name='hypervclock' present='yes'/> > </clock> > <on_poweroff>destroy</on_poweroff> > <on_reboot>restart</on_reboot> > <on_crash>restart</on_crash> > <pm> > <suspend-to-mem enabled='no'/> > <suspend-to-disk enabled='no'/> > </pm> > <devices> > <emulator>/usr/bin/qemu-kvm</emulator> > <disk type='file' device='cdrom'> > <driver name='qemu' type='raw'/> > <source file='/usr/share/virtio-win/virtio-win.iso'/> > <target dev='hda' bus='ide'/> > <readonly/> > <address type='drive' controller='0' bus='0' target='0' unit='0'/> > </disk> > <disk type='file' device='disk'> > <driver name='qemu' type='vmdk' cache='none' io='native'/> > <source file='/vm/storage/win10-box.img'/> > <target dev='vda' bus='virtio'/> > <boot order='1'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' >function='0x0'/> > </disk> > <controller type='usb' index='0' model='ich9-ehci1'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x06' >function='0x7'/> > </controller> > <controller type='usb' index='0' model='ich9-uhci1'> > <master startport='0'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x06' >function='0x0' multifunction='on'/> > </controller> > <controller type='usb' index='0' model='ich9-uhci2'> > <master startport='2'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x06' >function='0x1'/> > </controller> > <controller type='usb' index='0' model='ich9-uhci3'> > <master startport='4'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x06' >function='0x2'/> > </controller> > <controller type='pci' index='0' model='pci-root'/> > <controller type='ide' index='0'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x01' >function='0x1'/> > </controller> > <controller type='virtio-serial' index='0'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x05' >function='0x0'/> > </controller> > <controller type='sata' index='0'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x08' >function='0x0'/> > </controller> > <interface type='direct'> > <mac address='52:54:00:cc:f0:31'/> > <source dev='eno1' mode='bridge'/> > <model type='virtio'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x03' >function='0x0'/> > </interface> > <serial type='pty'> > <target port='0'/> > </serial> > <console type='pty'> > <target type='serial' port='0'/> > </console> > <input type='tablet' bus='usb'/> > <input type='mouse' bus='ps2'/> > <input type='keyboard' bus='ps2'/> > <graphics type='spice' autoport='yes'/> > <sound model='ich6'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x04' >function='0x0'/> > </sound> > <video> > <model type='vga' vram='16384' heads='1'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x02' >function='0x0'/> > </video> > <memballoon model='virtio'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x07' >function='0x0'/> > </memballoon> > </devices> ></domain>
John Obaterspok
2016-Feb-19 06:16 UTC
Re: [libvirt-users] Sluggish performance with virtio and Win10
2016-02-18 15:15 GMT+01:00 Martin Kletzander <mkletzan@redhat.com>:> On Thu, Feb 18, 2016 at 12:59:52PM +0100, John Obaterspok wrote: > >> 2016-02-18 11:25 GMT+01:00 Martin Kletzander <mkletzan@redhat.com>: >> >> On Thu, Feb 18, 2016 at 10:41:42AM +0100, John Obaterspok wrote: >>> >>> 2016-02-18 10:13 GMT+01:00 Martin Kletzander <mkletzan@redhat.com>: >>>> >>>> On Thu, Feb 18, 2016 at 08:49:38AM +0100, John Obaterspok wrote: >>>> >>>>> >>>>> Hello, >>>>> >>>>>> >>>>>> I'm using virt-manager on my F23 box to run a Windows 10 image but the >>>>>> performance is so bad it's killing me. >>>>>> >>>>>> I have "vmx" flag in /proc/cpuinfo >>>>>> >>>>>> # lsmod |grep kvm >>>>>> kvm_intel 167936 6 >>>>>> kvm 503808 1 kvm_intel >>>>>> >>>>>> virtio-win-0.1.112-1.noarch >>>>>> >>>>>> But no virtio modules loaded. Should they be loaded nowadays? >>>>>> >>>>>> >>>>>> Not on the host AFAIK. >>>>> >>>>> The disk format used is vmdk with no caching and native mode. >>>>> >>>>> The io is 100% in windows task manager performing less than 1MB/s >>>>>> >>>>>> Any clues? >>>>>> >>>>>> >>>>>> What are the figures from the host? What is qemu doing and what are >>>>>> the >>>>>> >>>>> other processes and devices doing? >>>>> >>>>> >>>>> What is the best way to find this out? >>>>> >>>> >>>> >>>> {,a,h}top should do for the initial runs, just to see if the block layer >>> is busy or the CPU is busy or something else is blocking it >>> >>> >>> atop seems to indicate that sdd is busy? >> >> DSK | sdd | busy 96% | | read 1455 | write >> 1319 | KiB/r 5 | KiB/w 9 | | MBr/s 0.74 | MBw/s >> 1.26 | avq 1.01 | | avio 3.43 ms | >> >> # mount | grep sdd >> /dev/sdd2 on /vm type ext4 (rw,relatime,seclabel,data=ordered) >> >> > And it doesn't do that in any other process on the host? It looks like > it's not related to virtualisation... > >Hi, I changed from vmdk to raw and the Write performance went from 1.6 MB/s to ~100 MB/s Is vmdk write performance so bad? Result: http://postimg.org/image/gcqe5affn/ -- john