Windows 10 vm stutter / lag issues


Recommended Posts

Hi all, 

 

I am new on this forum so please exuse any mistakes I make with regards to forum etiquette. 

A few weeks ago I downloaded Unraid and started using the trail version. Setting up the storage array was easy enough and after using it for 2 weeks I felt confident enough to create a Windows 10vm and merge the Unraid system with my main system. Unraid was running on some older hardware that I had but I prefer to have one system that does everything. 

 

Anyway after some issues with setting up the Windows vm (and getting help from the Dutch forum on tweakers.net) I now have a windows 10 vm running with GPU passthrough. The system runs and is usable but there are issues with performance. Running benchmarks is fine and even gaming works fine. 

 

The problem

So what is the problem? Windows is slow, laggy. Draggin a window across the desktop results in stutters. This gets much much worse when copying data from an external hdd to the array. As a result the vm is not usable when it is accessing the array. 

 

My setup

I have 4 8tb hdd's running as an array. One of these drives is for parity. I have currently unassigned the parity in order to copy back the 15.5tb of data faster. 

There is a 120gb ssd for cache that is not used by the array. It is only used for docker containers. 

There is 1 1tb ssd that is not assigned. That ssd is used for my Windows vm. The vm also has one motherboard usb controller passed through. There is an external 10tb hdd connected to one of those usb ports. 

I have 2 gpu's. Both GTX 660 ti. One of these is passed through to my vm. They are from Asus and do not support uefi bios. I had to use a MSI vbios in order to pass it through. 

 

Here is a screenshot of my drives:

image.thumb.png.ed0b0b8955b757147d3c3c12402ba268.png

 

Here is screenshot of my Windows template: (the Western Digital is at the time of the screenshot not connected to the vm for a test)

image.thumb.png.4eafbdc1cc91a3c213fa7dc1b83fa303.png

 

The cpu pinning:

image.thumb.png.00e236296ce97958bb52276f14861f24.png

 

Copying files from the external hdd connected to the Windows vm (not the copy one.) to the array runs at about 100MB a second. Even though the drives can handle 180. Copying the files back from the array to the hdd results in this 180MB speed. 

 

For me it is not a problem if copying the data is a bit slower but when copying Windows starts to run as slow as an old Windows 3.1 machine. But even if I am not copying data it is still laggy when dragging windows or opening something. Its like I am using my windows through something like Teamviewer even though I am not. 

 

Any help would be greatly appriciated. 

 

Kind regards,

Workermaster. 

Link to comment

Another update:
I tested with disabling the meltdown fix. Did not help. 

I disabled docker cpu pinnings. Did not help.

Ran Latencymonitor and WhySoSlow. They did show a large Kernel and App latency. 

 

Can anybody help with the latency problem? I hope that is the issue here. If not then I will have to investigate further. 

Link to comment
On 2/20/2021 at 8:52 PM, workermaster said:

Could it be that the lagging / stuttering is caused by disk IO?

Seems to be, monitor disk response time.

 

If your SSD was SATA, pls try found a standalone SATA controller then passthrough it to VM. But you need reinstall that Windows.

Edited by Vr2Io
Link to comment

I would try to set up windows with i440fx-4.2 instead of q35 for start.

 

Would add to the cputune section of the xml these lines, adjusted for your case:

 

    <emulatorpin cpuset='5,13'/>
    <iothreadpin iothread='2' cpuset='4,12'/>

 

 

Make sure you have installed virtio-drivers and you don't have any unknown devices in windows device manager.

 

I had a little bit of stuttering myself in a windows machine and solved it by pinning the first 8 threads on my 2700 and not the last ones.

I think that the pci and sata link works better this way.

 

pins.PNG.15120bb96fa402966d05cdb625b6368a.PNG

 

win10.thumb.PNG.09092bc9c41bc6cfa4043ef041537666.PNG

 

 

 

Link to comment
19 minutes ago, kolofotias said:

I would try to set up windows with i440fx-4.2 instead of q35 for start.

 

Would add to the cputune section of the xml these lines, adjusted for your case:

 



    <emulatorpin cpuset='5,13'/>
    <iothreadpin iothread='2' cpuset='4,12'/>

 

 

Make sure you have installed virtio-drivers and you don't have any unknown devices in windows device manager.

 

I had a little bit of stuttering myself in a windows machine and solved it by pinning the first 8 threads on my 2700 and not the last ones.

I think that the pci and sata link works better this way.

 

pins.PNG.15120bb96fa402966d05cdb625b6368a.PNG

 

win10.thumb.PNG.09092bc9c41bc6cfa4043ef041537666.PNG

 

Hi,

Thanks for your reply. 

 

I did forget to mention that I have already installed my Windows from scratch last saturday and it is using i400fx-5.2. Should i downgrade to 4.2? I can't seem to find a list that shows me the differences between those versions. Though I also have tried 4.2 before and got the same stuttering. But I could try it again. 

 

I have never worked with the XML files. So I do not know what to do there and how to adjust your example. I will try to work out what to do later today or tomorrow. 

Quote

 

 

Found my XML. This is how my VM is running now:

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='1'>
  <name>Windows 10</name>
  <uuid>a03a505b-a337-7063-b780-baf3f6f1f2b0</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>16777216</memory>
  <currentMemory unit='KiB'>16777216</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='4'/>
    <vcpupin vcpu='1' cpuset='12'/>
    <vcpupin vcpu='2' cpuset='5'/>
    <vcpupin vcpu='3' cpuset='13'/>
    <vcpupin vcpu='4' cpuset='7'/>
    <vcpupin vcpu='5' cpuset='15'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-5.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/a03a505b-a337-7063-b780-baf3f6f1f2b0_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='3' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </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/local/sbin/qemu</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/sdf' index='3'/>
      <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='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/sdc' index='2'/>
      <backingStore/>
      <target dev='hdd' bus='virtio'/>
      <alias name='virtio-disk3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/virtio-win-0.1.190-1.iso' index='1'/>
      <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' model='nec-xhci' ports='15'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </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>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:f3:17:1b'/>
      <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 type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <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/domain-1-Windows 10/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>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <rom file='/mnt/user/Plex/MSI.GTX660Ti.2048.120828.rom'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0b' slot='0x00' function='0x4'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0b' slot='0x00' function='0x3'/>
      </source>
      <alias name='hostdev2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>
 

Edited by workermaster
Link to comment

Hi all, 

 

Just wanted to let you know that I have tried older versions of the i440. None worked better. I have been playing around with cpu isolation and pinning. It seems Unraid sometimes uses isolated cored. If Windows is also accessing them, then I get to see the lagging issues a lot more. 

 

I will try some more things tomorrow or this weekend. 

Link to comment
On 2/24/2021 at 9:19 PM, kolofotias said:

I would try to set up windows with i440fx-4.2 instead of q35 for start.

 

Would add to the cputune section of the xml these lines, adjusted for your case:

 


    <emulatorpin cpuset='5,13'/>
    <iothreadpin iothread='2' cpuset='4,12'/>

 

 

Make sure you have installed virtio-drivers and you don't have any unknown devices in windows device manager.

 

I had a little bit of stuttering myself in a windows machine and solved it by pinning the first 8 threads on my 2700 and not the last ones.

I think that the pci and sata link works better this way.

 

pins.PNG.15120bb96fa402966d05cdb625b6368a.PNG

 

win10.thumb.PNG.09092bc9c41bc6cfa4043ef041537666.PNG

 

 

 

I feel like an idiot but I do not understand the settings I need to add to the xml. 

Are the emulator pins the cpu cores that the vm will be using? Or should the emulator pins be the ones that the vm will not be using? 

What would the iothread need to be? 

 

I would like my vm to run on the last 4 cores. I know that the first 4 are a bit faster (saw that in Ryzen master) but I also saw that unraid loves using the first 4 cores. Even if I isolate them. 

Link to comment
6 hours ago, workermaster said:

I feel like an idiot but I do not understand the settings I need to add to the xml. 

Are the emulator pins the cpu cores that the vm will be using? Or should the emulator pins be the ones that the vm will not be using? 

What would the iothread need to be? 

 

I would like my vm to run on the last 4 cores. I know that the first 4 are a bit faster (saw that in Ryzen master) but I also saw that unraid loves using the first 4 cores. Even if I isolate them. 

Emulator cores should be free non pinned cores outside the vm core range. I think it works better this way.

 

IOthread as well. Outside the pinned vm core range.

 

in your xml change these lines to this

 

 <cputune>
    <vcpupin vcpu='0' cpuset='4'/>
    <vcpupin vcpu='1' cpuset='12'/>
    <vcpupin vcpu='2' cpuset='5'/>
    <vcpupin vcpu='3' cpuset='13'/>
    <vcpupin vcpu='4' cpuset='7'/>
    <vcpupin vcpu='5' cpuset='15'/>
    <emulatorpin cpuset='1,9'/>
    <iothreadpin iothread='2' cpuset='3,11'/>
  </cputune>

 

 

How about your memory? XMP profiles? I ditched the xmp and lowered my memory frequency fro increased stability. The performance difference is minimal.

 

 

Here is my fully working lag free vm template. Comparing it with yours can help.

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='6'>
  <name>Windows 102</name>
  <uuid>ae460622-5497-4ee3-14af-6b8efd7fffc2</uuid>
  <description>Main2</description>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <iothreads>2</iothreads>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='8'/>
    <vcpupin vcpu='2' cpuset='1'/>
    <vcpupin vcpu='3' cpuset='9'/>
    <vcpupin vcpu='4' cpuset='2'/>
    <vcpupin vcpu='5' cpuset='10'/>
    <vcpupin vcpu='6' cpuset='3'/>
    <vcpupin vcpu='7' cpuset='11'/>
    <emulatorpin cpuset='5,13'/>
    <iothreadpin iothread='2' cpuset='4,12'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-4.2'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/ae460622-5497-4ee3-14af-6b8efd7fffc2_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='none'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/Windows 102/vdisk1.img' index='1'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='nec-xhci' ports='15'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:e0:62:71'/>
      <source bridge='br0'/>
      <target dev='vnet1'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='52:54:00:d5:7f:38'/>
      <source bridge='br0'/>
      <target dev='vnet2'/>
      <model type='virtio'/>
      <alias name='net1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/1'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/1'>
      <source path='/dev/pts/1'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-6-Windows 102/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <rom file='/mnt/user/domains/1050tiGamingvbios_edited.rom'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x045e'/>
        <product id='0x0768'/>
        <address bus='5' device='3'/>
      </source>
      <alias name='hostdev2'/>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x0763'/>
        <product id='0x4008'/>
        <address bus='5' device='4'/>
      </source>
      <alias name='hostdev3'/>
      <address type='usb' bus='0' port='3'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x258a'/>
        <product id='0x1007'/>
        <address bus='5' device='8'/>
      </source>
      <alias name='hostdev4'/>
      <address type='usb' bus='0' port='4'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

 

Edited by kolofotias
Link to comment

Right. It has been a little while but a lot has happened. 

 

I ordered a Samsung 970 EVO to install my Windows VM and changed my cache drive to the old ssd that my previous (laggy) install ran on. After booting Unraid suddely can't use my second GPU. It has no hardware ID. I also had a lot of trouble getting a new VM up and running. GPU passthrough just wouldn't work. However after rebooting a couple thousand times it did work. Surprisingly my new VM is snappy. There is no lag. So problem solved right? Nope. 

 

My new VM does stutter when DisplayFusion is running. If I stop the program then the lag is gone. Strangely I did try turning that off (and even uninstalling it) with the previous install. It did not help there. 

Since I use a 49 inch ultrawide, I do need DisplayFusion to run. So now the question is why that program slows my VM down. 

I also noticed that dragging Bittorrent (with or without downloads running) will lag. However since I have Sonarr and Radarr running in Dockers, that is not an issue. 

 

I have not tried setting emulator pins on my CPU yet. That will be my next step in figuring out why DisplayFusion is messing with my system. 

Link to comment
  • 4 months later...

I can't believe it, but I fixed my severe Windows 10 VM stuttering issue. I was really hopeful that the MSI fix proposed above (I used MSI_util_v3.exe to enable msi, and set the interrupt priority to "High") was going to work for me, since lspci told me that my gpu+audio passthrough didn't have MSI enabled. Applied the fix, no dice.

 

Then I resumed my two-day Google-fu and read like a thousand and one posts with all sorts of purported arcane fixes. I'm one post removed from sacrificing a virgin and using his blood to consecrate my VM.

 

It turns out that this was my problem (see attached picture). I enabled this to run WSL, and I didn't suspect that it would cause a major issue with lag and stuttering. This was my last hail-mary, and I disabled it, rebooted the VM thinking it wouldn't do anything.

 

VOILA. SLICK BUTTERY GOODNESS.

 

Granted, I can't use WSL in my VM anymore but it wasn't that important compared to having the VM run smoothly. Now I'm streaming 4K videos on youtube on the VM through Parsec and everything works perfectly.

 

Host setup: i7-7820x, Gigabyte X299 Gaming 3, 32GB RAM, Gigabyte AORUS Xtreme 1080ti (Single GPU passthrough), UEFI boot, ixgbe network bridge.

VM setup: Windows 10, 4 isolated cores / 8 threads passthrough, GPU+HD Audio passthrough, 16GB RAM, network bridged to host ixgbe interface.

 

tl;dr: Killing "Virtual Machine Platform" under "Windows Features" fixed my extreme stuttering/lagging problem with my Windows 10 VM.

 

 

Screenshot.png

Edited by wilde.fyre
  • Thanks 1
Link to comment
On 3/6/2021 at 11:11 AM, andreidelait said:

Did this happen since Unraid 6.9.0 update?

My VMs are slow and luggy since then and they worked just fine before.

 

Maybe this solution will work for you. Mine is fixed

 

Sorry for the late reply. It happened before the update as well. Quite soon after my last post, I started running Unraid om my old hardware and just used my VM that had all these problems on the new hardware. There were no problems then. So bare metal works just fine. 

 

A week ago, I got a new GPU. And since my old hardware is not fast enough for my Unraid system anymore, I decided to give it another try today to see if I could get a Windows 10 VM running. It runs much better with a few changes. I switched back to bare metal for now until my new PC case is done. Then I will make the switch back to using a VM on Unraid and put a description of my performance with the new hardware on here. 

Link to comment

Hey yo. You could try passing through a ssd to the vm as the only disk. I.e. eliminate vdisk completely. I did some testing on a VM that I was trying to remove the lag when scrolling on Divinity Original Sin 2. I tried pinning, xml changes, changing cache disks, nothing helped. What did help was passing through the entire disk to the VM (as the boot disk). I also did this technique for my bittorrent VM and got much better download speeds. So maybe give that a shot.

Link to comment
14 minutes ago, AntaresUK said:

Hey yo. You could try passing through a ssd to the vm as the only disk. I.e. eliminate vdisk completely. I did some testing on a VM that I was trying to remove the lag when scrolling on Divinity Original Sin 2. I tried pinning, xml changes, changing cache disks, nothing helped. What did help was passing through the entire disk to the VM (as the boot disk). I also did this technique for my bittorrent VM and got much better download speeds. So maybe give that a shot.

While I did not do that today, I did do that in the past. I passed through the entire motherboard NVME controller. Still laggy. My current guess is that my old GPU was the cause of most of the lag. But there is still some lag. 

 

I think that the amount of lag I saw today was acceptable and is something to be expected from a virtual machine. Bare metal is just a bit faster. When I did a Time Spy benchmark on the GPU, I got about 20.000 GPU score on bare metal and 17.000 on the vm. The vm just gives me a lot worse performance. But when I have it all up and running in a few weeks then I will try to optimize it all. 

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.