Very slow write speeds Win10 VM


Bahndit

Recommended Posts

I have done my best to read around on the forums and google a solution but I can't seem to find a solution on my own. My write speeds inside my Win10 VM are terrible:

Slow%20SSD.PNG?raw=1

I gave up on finishing this benchmark.

Write speeds seem to be reasonable inside UNRAID.

dd if=/dev/zero of=/mnt/cache/test.dd count=8192000 bs=64k count=8k conv=fdatasync
8192+0 records in
8192+0 records out
536870912 bytes (537 MB) copied, 1.27176 s, 422 MB/s

 

Here is my XML code:

<domain type='kvm'>
  <name>Bahndit-VM</name>
  <uuid>f79e8176-a002-ff34-c2f4-da5810074bfe</uuid>
  <description>Gaming PC</description>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>17301504</memory>
  <currentMemory unit='KiB'>17301504</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>1</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
    <loader type='pflash'>/usr/share/qemu/ovmf-x64/OVMF-pure-efi.fd</loader>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='1' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/Bahndit-VM/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/domains/ISOs/Windows10.iso'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/domains/VirtIO Drivers/virtio-win-0.1.112.iso'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' 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='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:99:16:5d'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Bahndit-VM.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
      </source>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </memballoon>
  </devices>
</domain>

 

I have tried changing the cache to 'none' and adding io='native' but then my VM won't boot up.

 

What am I missing here folks? Did I do something wrong?

 

Some more info about my machine:

Model: N/A
M/B: Supermicro - X10SRA-F
CPU: Intel® Xeon® CPU E5-1650 v3 @ 3.50GHz
HVM: Enabled
IOMMU: Enabled
Cache: 384 kB, 1536 kB, 15360 kB
Memory: 65536 MB (max. installable capacity 512 GB)
Kernel: Linux 4.1.13-unRAID x86_64
OpenSSL: 1.0.1p

I am also passing through an NVIDIA GTX 980 Ti to this VM. I have all of this beautiful new gear that I am dying to play some games with.

 

Thanks in advance for your time and help!

Link to comment

Could you share your AS SSD results after you moved your share back to cache? Im having SSD performance issues inside VMs and would be nice to compare performance figures :)

 

Happy to share. Things are working much better now that I have fixed my mistake. However, as you can see below I am still getting TERRIBLE 4k performance so I still need to tune this some more.

Slow%20SSD%204K.PNG?raw=1

Anyone have any thoughts? I am using the latest VirtIO Drivers 1.112 as I couldn't get Win10 to install with the stable drivers. Should I roll back to an earlier driver release or will that mess up my VM?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.