Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[WIP] Windows 10 VM Disk Super Slow

Featured Replies

Hello,

 

I'm running a Windows 10 VM on my unraid server's ssd cache drives.

4 CPUs, 8GB of Ram and a GTX 750 Ti

 

The problem I'm running into is the disk is constantly maxed out at 100% inside the VM, the problem is the max speed it reaches is only 1 MB/s which is not good at all!

 

Maybe I'm doing something wrong, I've reinstalled it several times now and followed the post install tuning guide, what else can I do?

 

Here's my XML

 

<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>WiseHTPC</name>
  <uuid>d2cf32d3-8204-c639-626c-dca8e87c97b4</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='4' 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/cache/appdata/vm/WiseHTPC/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <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/appdata/vm/Windows+10+x64.iso'/>
      <backingStore/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <alias name='ide0-0-0'/>
      <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/appdata/vm/virtio-win-0.1.112.iso'/>
      <backingStore/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <alias name='ide0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:f9:7e:90'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/WiseHTPC.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0bda'/>
        <product id='0x0151'/>
        <address bus='1' device='7'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
        <address bus='1' device='3'/>
      </source>
      <alias name='hostdev1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x1784'/>
        <product id='0x0011'/>
        <address bus='1' device='8'/>
      </source>
      <alias name='hostdev2'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
  </qemu:commandline>
</domain>

 

  • Author

What is your hardware setup?

 

i7-4790

16GB Ram

GTX 750 ti

 

1x 4TB WD Green Parity Drive

2x 2TB WD Green Data Drives

1x 1TB WD Green Data Drive

3x 256 GB Samsung SSD Cache Drives

What is your hardware setup?

 

i7-4790

16GB Ram

GTX 750 ti

 

1x 4TB WD Green Parity Drive

2x 2TB WD Green Data Drives

1x 1TB WD Green Data Drive

3x 256 GB Samsung SSD Cache Drives

Looks good.

I remember someone else had a similar problem, but don't remember the solution. Try a search.

  • Author

I have been - everything I read involved following the tuning guide.

 

There has to be something I'm missing - Could it be bad virtio drivers on the initial install? I've been using the latest ones maybe I'll give it another go with the stable ones.

I have been - everything I read involved following the tuning guide.

 

There has to be something I'm missing - Could it be bad virtio drivers on the initial install? I've been using the latest ones maybe I'll give it another go with the stable ones.

Try different drivers. Also different beta's.

Does it get better if you do not assign the first core to the VM?

Do you have anything else running at the same time?

Are you sure the vdisk share is a cache only share?

I take it back, its calmed down. I just created this VM so that explains why it may have been a bit crazy initially.

  • Author

Switching from RAW to qcow2 solved my issue.

Switching from RAW to qcow2 solved my issue.

That makes no sense.  Qcow2 should never be faster than raw.

  • Author

I don't get it at all either- but it worked..

 

 

I don't get it at all either- but it worked..

Nah, something else is going on. Did you run disk benchmarking tools or.just eyeball it?

  • Author

Eyeballed, but I was literally unable to do anything inside the VM because the disk was so slow. Even installing it originally took forever, once I switched to qcow2 the install time was cut by by 75%

Eyeballed, but I was literally unable to do anything inside the VM because the disk was so slow. Even installing it originally took forever, once I switched to qcow2 the install time was cut by by 75%

Yeah, I'm not convinced.  I bet if you let it run for a while its have been better performance as raw.

  • Author

Eyeballed, but I was literally unable to do anything inside the VM because the disk was so slow. Even installing it originally took forever, once I switched to qcow2 the install time was cut by by 75%

Yeah, I'm not convinced.  I bet if you let it run for a while its have been better performance as raw.

 

I let it run for 12 hour before touching it the first time and it was horribly slow - I couldn't even get chrome to download.

 

I'll set up a second vm with a junk video card and run some benchmarks over the weekend and post the results.

 

Edit: Or do you think it would be better to make a backup of the VM and convert from qcow2 to raw?

 

I found this guide- https://easyengine.io/tutorials/kvm/convert-qcow2-to-raw-format/

  • Author

Update-

 

Converted my working qcow2 disk to raw and ran some benchmarks, although it's a bit better then before (Not sure which of the 50 changes I've made since last trying raw fixed it) qcow2 still seems to be outperforming raw.

 

qcow2

F0AVuzS.png

 

raw

HdgPNbx.png

Update-

 

Converted my working qcow2 disk to raw and ran some benchmarks, although it's a bit better then before (Not sure which of the 50 changes I've made since last trying raw fixed it) qcow2 still seems to be outperforming raw.

 

qcow2

F0AVuzS.png

 

raw

HdgPNbx.png

 

Absolutely bizarre.  I'll have to recreate some tests of my own to see if I get the same result and then investigate as to why.  QCOW files should have more overhead by their very nature.

  • Author

I spoke to soon..

 

Now my qcow2 disk is only getting 1MB/s

I spoke to soon..

 

Now my qcow2 disk is only getting 1MB/s

I didn't get any reply on this question before, so I try again.

Are you sure that the vdisk share is cache only and not moved to the array by the mover?

  • Author

I spoke to soon..

 

Now my qcow2 disk is only getting 1MB/s

I didn't get any reply on this question before, so I try again.

Are you sure that the vdisk share is cache only and not moved to the array by the mover?

 

Positive, my vms are in /mnt/cache/vms

I spoke to soon..

 

Now my qcow2 disk is only getting 1MB/s

I didn't get any reply on this question before, so I try again.

Are you sure that the vdisk share is cache only and not moved to the array by the mover?

 

Positive, my vms are in /mnt/cache/vms

Your XML does not say the same path for the vdisk, but you might have changed it after that?

  • Author

I moved it around a bunch, even then my appdata directory is set to cache only.

 

I think the problem was something to do with my demonic audio problem. If my AV receiver was off when unRAID was booted then the GPU would have the demonic audio problem and cripple the VM. That's the only thing I can think of at this point because it doesn't matter if I'm using qcow2 or raw now. I can test this theory later tonight by booting with the receiver off and running benchmarks and comparing to what I'm seeing now. 

 

Jonp looks like you were right! Raw was slightly better when everything is working properly-

 

jPrMaPp.png

 

 

 

 

Jonp looks like you were right!

 

Now if I could just get my wife to say that...

 

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.