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.

Piss poor gaming performance on RTX 3080 (did a full format of unraid, still)

Featured Replies

For past 1yr, i am struggling to get stable frames in game. If i boot windows directly then it works flawlessly i get steady locked frame but when playing in Unraid, it goes for the toss.

 

In Windows bare metal

When i start the game i get 59 fps locked (i have locked fps at 59) and it works great and smooth,

 

In Windows - Unraid VM

It all goes for a toss, the game starts with 20-40fps range, flactuating a lot, then going upto 59fps but when i move the game it stutters like crazy, the average frame rate remains 60 only but my 1% Low & Framrate Minimum suffers like crazy and gives bad experience.

 

I was so fed up that i formatted the whole unraid usb and started afresh.

 

Followed this guide - https://mathiashueber.com/performance-tweaks-gaming-on-virtual-machines/

 

But it still sucks.

 

Screenshots of Guardians of the Galaxy (I have tested in multiple games over past yr, all same issue).

 

I just don't get it whats wrong. I have tried 16 thread setup, 14thread, 12threads and now i am at 8 threads. My GPU is clearly not being used fully and the fact that it works fine in bare metal is screwing with me so bad. Pleas help.

 

All i want is stable performance and working game.

 

I reset the framee counter before the first screenshot.

 

 

7PEJlkF.jpg

0ViXRR8.jpg

YDgKicN.png

 

 

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='2'>
  <name>Windows 10 - Gaming Optimized</name>
  <uuid>b6006252-1871-b460-d058-ff42f823ef65</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>20971520</memory>
  <currentMemory unit='KiB'>20971520</currentMemory>
  <memoryBacking>
    <hugepages/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <iothreads>2</iothreads>
  <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='6'/>
    <vcpupin vcpu='5' cpuset='14'/>
    <vcpupin vcpu='6' cpuset='7'/>
    <vcpupin vcpu='7' cpuset='15'/>
    <emulatorpin cpuset='0-3'/>
    <iothreadpin iothread='1' cpuset='0-1'/>
    <iothreadpin iothread='2' cpuset='2-3'/>
  </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/b6006252-1871-b460-d058-ff42f823ef65_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vpindex state='on'/>
      <synic state='on'/>
      <stimer state='on'/>
      <reset state='on'/>
      <vendor_id state='on' value='1234567890ab'/>
      <frequencies state='on'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' present='no' tickpolicy='catchup'/>
    <timer name='pit' present='no' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
    <timer name='hypervclock' present='yes'/>
    <timer name='tsc' present='yes' mode='native'/>
  </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/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S4FNNF0NB21554M' index='2'/>
      <backingStore/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <alias name='sata0-0-2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/disk/by-id/ata-WDC_WD1002FAEX-00Z3A0_WD-WCATRC635557' index='1'/>
      <backingStore/>
      <target dev='hdd' bus='sata'/>
      <alias name='sata0-0-3'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='sata0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </controller>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:06:6b:3e'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio-net'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='52:54:00:22:8f:ec'/>
      <source bridge='br1'/>
      <target dev='vnet1'/>
      <model type='virtio-net'/>
      <alias name='net1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='52:54:00:93:8d:da'/>
      <source bridge='virbr1'/>
      <target dev='vnet2'/>
      <model type='virtio-net'/>
      <alias name='net2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' 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-2-Windows 10 - Gaming /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='mouse' bus='ps2'>
      <alias name='input0'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input1'/>
    </input>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0b' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <rom file='/mnt/disk1/NVIDIA.RTX3080.10240.210304.rom'/>
      <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='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev5'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x3'/>
      </source>
      <alias name='hostdev6'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

 

tower-diagnostics-20211031-0153.zip

Unfortunately we do not have any 30-series GPUs for testing here, but we do see other users reporting success with this combination.  I don't think your issue is the GPU.  I think it is more likely tied to your Ryzen CPU.  AMD CPUs have been notorious for causing weird performance oddities on random setups.  Some users report everything working great, others have issues like you've described.  The big things you need to try:

 

1)  Disable all dockers, plugins, or any other custom 3rd party add-ons you have installed on your system and retest.

2)  Did you properly isolate your CPUs for your VM?  You can do this from Settings -> CPU Pinning page.

 

If you've already done those exact things and are still having poor performance, I'm not sure what else to suggest other than changing the CPU/mobo.

I would also suggest to check latency inside the vm: check latencymon software.

You can then play with msi util (v2 or v3) and correct any possible irq conflict.

  • Author
On 11/2/2021 at 12:29 AM, jonp said:

Unfortunately we do not have any 30-series GPUs for testing here, but we do see other users reporting success with this combination.  I don't think your issue is the GPU.  I think it is more likely tied to your Ryzen CPU.  AMD CPUs have been notorious for causing weird performance oddities on random setups.  Some users report everything working great, others have issues like you've described.  The big things you need to try:

 

1)  Disable all dockers, plugins, or any other custom 3rd party add-ons you have installed on your system and retest.

2)  Did you properly isolate your CPUs for your VM?  You can do this from Settings -> CPU Pinning page.

 

If you've already done those exact things and are still having poor performance, I'm not sure what else to suggest other than changing the CPU/mobo.

1 - Already done, i have formatted my whole unraid, and ran just my VM and it worked flawlessly.

2 - Yes, my last 6 cores are isolated and last 4 are alloted to VM.

 

I am so sick and tired of this whole experience for past 1yr. :(

  • Author
12 hours ago, ghost82 said:

I would also suggest to check latency inside the vm: check latencymon software.

You can then play with msi util (v2 or v3) and correct any possible irq conflict.

I already optimized the VM for latency.

https://prnt.sc/1y74r4h

 

Today i went ahead and did more optimization, it worked great for the first few hours, but then after like 4-5hrs, i start another game, and its a stutter mess, all over again.

Curious if you try a different game if you have the same or different results.

  • Author
14 hours ago, jonp said:

Curious if you try a different game if you have the same or different results.

For now the game is working fine....

 

However after u said it could be CPU issue.

The CPU usage in mhz in VM is so low, however on main server it is 4.3ghz locked (i have set it in bios).

 

Even at 100% CPU usage, the mhz is low, is it showing wrong reading? 

 

PS: Core 0 does go upto 4.3ghz. but thats the only one.

I noticed something - image.thumb.png.8c09b97af22a66fed5b63e93312ad11a.png

I'm confused.  The issue has resolved itself?  The game is performing fine now?  If so, there's no way that those clock speeds could be accurate while you're getting good in-game performance.  Its likely a reporting error in the VM.

  • Author
1 hour ago, jonp said:

I'm confused.  The issue has resolved itself?  The game is performing fine now?  If so, there's no way that those clock speeds could be accurate while you're getting good in-game performance.  Its likely a reporting error in the VM.

No, not itself i took some advice from reddit, i dumped my own vbios and then removed all the cores from the 1st CCX and just kept the VM on 2nd CCX with 1st CCX cores using as emulator pin and iothread and then i re did the whole VM configuration.

 

I am still monitoring, it is def better than before. But i do not want to pull the trigger so fast.

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...

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.