Terrible gaming performance


Recommended Posts

  • 1 year later...
On 1/20/2019 at 4:32 AM, billington.mark said:

I have a very similar setup to you and have diagnosed NUMA headaches for longer than I care to remember! 

A few things to try.... (which made my performance better).

 

  • Switch to a Q35 VM. It might not yield any performance increase right now, but there are some changes in the pipeline for QEMU 3.2\4.0 which will increase performance of passed through PCIe devices. (which should be included in the next version of unraid).
  • After youve flipped to Q35, add an emulatorpin value to take the pressure off of core 0 (which it will be using by default). keeping it on the same numa node as your passed through CPUs would most likely be best. so it'll look like this:
     
    
      <vcpu placement='static'>12</vcpu>
      <cputune>
        <vcpupin vcpu='0' cpuset='10'/>
        <vcpupin vcpu='1' cpuset='26'/>
        <vcpupin vcpu='2' cpuset='11'/>
        <vcpupin vcpu='3' cpuset='27'/>
        <vcpupin vcpu='4' cpuset='12'/>
        <vcpupin vcpu='5' cpuset='28'/>
        <vcpupin vcpu='6' cpuset='13'/>
        <vcpupin vcpu='7' cpuset='29'/>
        <vcpupin vcpu='8' cpuset='14'/>
        <vcpupin vcpu='9' cpuset='30'/>
        <vcpupin vcpu='10' cpuset='15'/>
        <vcpupin vcpu='11' cpuset='31'/>
        <emulatorpin cpuset='9,25'/>
      </cputune>

    Personally, I have my main workstation VM running off of cores on NUMA node 0, so I have my emulatorpin there. With the QEMU service running on Node0 too, it might be worth testing your emulatorpin on that node too, so 7,23 maybe. personally, I also stub those cpu cores the same as the rest to ensure nothing else is stealing cycles from my VM.

  • Add some additional hyper-v enlightenments (i cant remember if all of these are standard with unraid, but here they are anyway)


    <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='none'/>
      <frequencies state='on'/>
    </hyperv>
  • MSI fix will most likely need to be applied to your GPU and GPU Audio device. https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts.378044/ (Use the v2 utility)
  • Last but by no means least is that your storage is based on NUMA node 0, and everything else is on node 1. Latency will be an issue here. not sure how viable this will be, but if you can, flip your 1070 into a PCIe slot associated with NUMA node 0, change your cpus to that node too (and your emulatorpin), and see how things are there. 
    Another alternative is if you have a spare hdd controller, with only the SSD you're using, pass that through if you're able to, as it'll cut out the QEMU middleman between Windows and the SSD. 

I think you'll notice the biggest difference with the emulatorpin change. 

 

@billington.mark

Sorry to dig this thread up from the grave but how come when i try and enter in this hyperv section and save it, it gets automatically removed from the xml?

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.