Gaming VM Significantly Underperforming

HLS

New Member
Nov 11, 2024
3
1
1
I know that the first round of advice is going to be "don't use VMs for gaming," but I've got a real use case for it and in an ideal world I'd like it to work. This isn't a post on the merits of using a VM for gaming, but a question to see if there's anything I'm overlooking, or if someone who's done something similar has any ideas.


This is my setup:
Dell T630 PowerEdge
Xeon 1650 v4 (3.5ghz) [Note, previously I had 2 2687w v4s but switched to see if it was a CPU limitation]
128gb 2400 RAM
AMD 7900xtx
16tb Hardware RAID 10 w/ 730p PERC controller (8x4tb sas drives)
1tb SSD via PCI Adapter (moved games to here in case there was an issue of r / w speeds)


I've tried both an Ubuntu and a Windows desktop. It was a pain in the ass to get PCI passthrough for the GPU working (due to some oddities with the PowerEdge) but managed to get it working. I've done two different methods of passthrough, both blacklisting and having vfio bound early (as well as just letting it figure itself out with the AMDGPU driver). Both VMs have the latest version of AMD drivers installed locally and can fully interact with the GPU.


The game I'm testing with is Deadlock, which is far from resource intensive. On both VMs I get the exact same performance of 35fps on 1080p..... which is less than my potato of a laptop that only has a 1650 in it....


Additionally, using resource monitor within the VMs I can clearly see that *none* of the resources are pegged. CPU usage sits around 40%, ram usage is low, disk usage is minimal, and GPU usage never goes above 20%. So I really cannot find a bottleneck.


I've tried giving the VM 6 and 12 CPU, 16, 32, and 64gb RAM, I've tried having the games local (on the raid) and installed on the passed through SSD. I switched from dual socket to only running on one cpu with everything (memory gpu etc) on the CPU1 slots to ensure that it wasn't trying to pass resources between the CPU and overloading the bus. In every single test I've gotten the exact same 35fps.


I've tried with a few other games on both storages, Ghostrunner as a "heavier" game and Deep Rock Galactic as a "lighter" game. Both of these have heavy stutters every 10 to 30 seconds making them unplayable. Through AMD's tooling I see that the 99th percentile frames are dropping down to the 5 to 15 fps.


Before I give up entirely, is there something I'm blatantly overlooking? Thanks in advance
 
Please ignore hyper-threads as they don't really give any performance like a real core (only 5-25%). Keep two cores available to Proxmox (for overhead, graphs and emulation of devices). Please try if the VM feels more smooth with only 4 cores. Also, your CPU is old (Broadwell 2016) and therefore slow even at 3.6-4.0GHz and most games need high single-threaded performance.
 
When you say to "ignore" hyper-threads what do you mean?
From what I see ProxMox counts every hyper-thread as a core. With my 6c12t CPU slotted ProxMox shows it as 12 CPUs. This has been the same for any Xeon processors I've used. When assigning them, I only have the ability to assign x/12. Is there a setting to change that somewhere or do you mean to just divide by two when I'm thinking about it?
I have tried with 6/12 (aka 3/6 cores) but didn't notice a difference. I will try with 8/12 and report back.
While I do get that the CPUs I'm using are *OLD* I'm benchmarking it against my laptop which has a Ryzen 4600h (3.0-4.0 6c12t) and a 1650 TI so I would hope for similarish performance but so far it's not even close.
 
When you say to "ignore" hyper-threads what do you mean?
I mean that you might as well disable hyper-threading in the BIOS, so that each core has twice the cache and performs better in games.
From what I see ProxMox counts every hyper-thread as a core. With my 6c12t CPU slotted ProxMox shows it as 12 CPUs. This has been the same for any Xeon processors I've used.
Yes, this is indeed normal. However, the difference between 50% CPU load and 100% CPU load will give you only something like 15% extra throughput, not 50%.
I have tried with 6/12 (aka 3/6 cores) but didn't notice a difference. I will try with 8/12 and report back.
Please try with 4 (just 4, not 8/12, not 8 not 6, just plain 4) and see if the VM is more "smooth". To prevent latency spikes (hick-ups) make sure not to give the VM 100% of any resource (like 6 virtual cores, since your host only has 6 real cores). And Proxmox also needs resources while your VM is running. Once Proxmox and your VM start competing for those 6 cores, you get lag and stutter.
While I do get that the CPUs I'm using are *OLD* I'm benchmarking it against my laptop which has a Ryzen 4600h (3.0-4.0 6c12t) and a 1650 TI so I would hope for similarish performance but so far it's not even close.
Ryzen is newer and faster per MHz (it can do more per clock-tick) and gets much better performance on single-threaded loads. They are really not similar.
Maybe search the forum a bit for threads about laggy and slow game performance on old servers.

I fear your CPU is slow and you make things worse by giving the VM more than 4 virtual CPUs/Processors/Cores (not extra threads). I could be wrong but I also don't have a horse in this race and I don't have anything else to contribute, but maybe other people know better or have more experience with this. Please let me know if the VM feels better with 4 instead of 6.
 
  • Like
Reactions: UdoB
Hello, and thanks for the help!
Totally get what you mean about cores vs threads now.

I dropped it down to 4 and got significant improvements (110-120fps now). It really must have been proxmox fighting for the cores I'll also try disabling hyperthreading later to see if that pushes it even further. Thanks a ton for the quick responses!
 
  • Like
Reactions: UdoB

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!