Proxmox windows 11 very poor performance

stevenwh

Member
Mar 16, 2024
30
2
8
Hello all,
I know this question has been asked before but of the ones I could find and the things suggested to try, nothing has seemed to work to resolve any issues.

First a bit about my usage and such. I've used ESXi for this type of stuff for a while. But I'm configuring a new home lab server and decided to give Proxmox a try. The hardware I'm running on is an old Dell Poweredge R730:

2x E5-2690 V4 CPUs
512 GB ECC DDR4
1 TB SSD for Proxmox boot drive
5 x 4TB SSD in RAIDZ for storage / vm disk drives


I created a Windows 11 test VM, I've configured this VM with 32 GB ram and 6 CPU cores (NUMA is enabled FYI)

After a lot of clunky fooling around and settings things just so, following "best practices" and such I have it in a state that I think is generally accepted as the best performance. I've done everything in the Windows 10 best practices Wiki article too. However, it's still pretty awful performance. Even when using remote desktop to connect which should give the best results, things are slow to respond to clicks, everything is just laggy.

I've tried using SPICE for the video, but apparently there is still a pretty old bug with it where if you set the memory over 128 it simply will never launch (get a message about guest hasn't initialized the display yet). And the 128 memory doesn't seem to be enough for playing videos and the general windows 11 graphical elements. Right now I have the machine running with a VirtIO GPU (with 512 memory) and it runs slightly better on this but still pretty poor. If I try to play a youtube video on it for example it will stutter and lag. Even with youtube video all the way down to 360p it still struggles to play it smoothly. The VM cpu is showing only 40 to 50% max when trying to play videos. So don't think it's an internal cpu problem. The host itself CPU barely registers anything spiking to only 5% sometimes.

I've configured multiple windows 11 vms on esxi and they just work. No performance issues (even with lower specs on the VM). I actually primarily work off a windows 11 vm that I'm running on a pretty low powered relatively esxi server.

So I'm trying to figure out what I might be doing wrong here. Any help or advice would be appreciated.
 
You don't discuss your network config. Nor from where you're accessing your VMs. Though I'm assuming your Esxi/Proxmox trials are similar in this respect.
 
You don't discuss your network config. Nor from where you're accessing your VMs. Though I'm assuming your Esxi/Proxmox trials are similar in this respect.
Yes, they are similar so I didn't consider them relevant. Also the lagginess isn't network lag, it's like an old netbook trying to play a 4k vide lag. Audio / video sync issues, low fps, stuttering (on just the video) type stuff. But it goes beyond just video streams on the VM to any kind of graphical animation in the OS. I definitely feel like it's purely graphics related.

It brings to mind one question as for the hardware in a server like this. If i installed a video card, and did not have it passed through to a VM, would proxmox use the resources from that GPU for all VMs? Or would the GPU just sit there idle and unused? I'm just wondering if it needs more GPU power for things or something =/ I don't know why ESXi would handle it better but I'm just guessing at things here since I'm not that familiar with Proxmox.

EDIT, I don't know a lot about virtualization stuff, but trying to look into this myself I think it would only work with Nvidia vGPU. Looks like there are some ways to get that working on older generation cards up to some of the 2000 series, but I can't find anything for 30series and up. Nvidia locks the functionality away for enterprise hardware only. I do have an A2000 card that I've used as a pass through card in some servers before, but that one doesn't look to have vGPU support either, I'd have to get hold of a A5000 at least =/ Bummer on that regard. But hopefully there is something else I can do to improve the performance in what I'm trying to use it for. I know when I run ESXi I'm also not doing any of this vGPU stuff so it should be on even footing... =/ There do appear to be other projects out there for virtualizing GPU resources though, like I saw one reference to LibVF.IO but I haven't looked into any of that stuff yet.

But, as for the network config, The server is connected to a 2.5 Gb switch (just through a single 1 Gb port currently cause I haven't set up link aggregation on the server yet. I'm RDPing in from a different computer connected to the same 2.5 Gb switch on a 2.5 Gb port. The VM I am using VirtIO nics.
 
Last edited:
Ok, so yeah I'm really at a loss here.

After playing around with it for a few more hours thinking it had something to do with GPU considering it seemed like graphics lag to me I discovered a few things.

First, it looks like if I'm reading it correctly VirtGL is intended for use for sharing host GPU resources. When I tried enabling that I find out that my host GPU isn't being used properly or something (I get errors about no renderer found). Digging into that some I find out that proxmox blacklists nvidia driver modules by default. I try messing with getting those enabled for a while but wasn't having a lot of luck getting nvidia drivers installed, so I resorted to just looking into doing a GPU pass through instead.

So, then I have to tinker around for a while to figure out how to get IOMMU enabled (it was fully enabled in my bios but I didn't realize I had to also go manually edit the grub config and add an argument to enable it there. Some added confusion here cause apparently there are different ways to do it for UEFI and non UEFI, and I really could've sworn I set this system up on UEFI. But for some reason it's not now even though my bios is set to boot in UEFI mode. But I finally get IOMMU enabled.

Passed through a 3070 Ti that I have connected to the server (with the intention of using it as a pass through later just wasn't doing that yet), the VM sees it just fine, get the drivers installed for it, andddddd zero improvement....

So it's definitely not graphics lag if a 3070ti isn't helping on just windows animations and youtube and such haha.

I really don't know what other tree to bark up for this... Really want to give Proxmox a go for this server, just cause I like to play with the different tools to find ones I like better but I need VMs to perform adequately and the laginess I'm seeing in this one just isn't going to cut it when I've been spoiled by near local native performance in the VMs I've been running under ESXi =/

And honestly this entire process is just giving me serious Linux vibes lol (I know Prox is debian so maybe that is why!). I've always loved Linux but it's never going to be widely adopted when there is this much tinkering involved to get what seems like a simple thing working. ESXi is like Windows in this comparison and just does things to make the user experience more smooth. For examle IOMMU enabling, for what I ultimately had to actually edit in the grub file... I'm not sure why this isn't auto enabled, or at the very least a simple configuration option somewhere in the UI.
 
Very strange. I'm testing proxmox on a hpe ml30 gen10 with 1cpu,16gb and 2x2tb spinning disk.
Windows 11 (2cores,4-8gb) installed with virtio drivers and it just works. When connected via rdp I'm even playing videos on YouTube without any problem.
The 2 spinning disk in raid1 via zfs thin.
 
> 1 TB SSD for Proxmox boot drive
> 5 x 4TB SSD in RAIDZ for storage / vm disk drives

Try moving the storage for the Win11 VM to the 1TB SSD if you have enough room.
I discovered VM interactive performance for Win10 was ass when I was trying to run it from a 14-spinning disk ZFS DRAID, problems stopped when I moved it to a single SSD.

Also try installing nomachine nx on your client machine and in-vm and use that for remote desktop, performance for videos and such may be better. You could also try decreasing the vCPU for the VM from 6 down to 2, and pinning the cores to reduce latency.

https://github.com/kneutron/ansites...proxmox-vm-assign-cpu-cores-6-vcpu--8-pcpu.sh
 
Last edited:
Welp, I had gone back over to ESXi to test things out and see what was so different. That is why I haven't replied in a few days, was testing with it. Works so much more beautfiully in ESXi without any kind of fiddling or tweaking required. Seems ESXi is automatically configured to detect GPUs and share them through host sharing (what I believe virtGL is supposed to achieve), and they just do it a lot better. For anything short of demanding games it will run all the gpu effected things perfectly fine like this in VMs.

If Prox really wants to be on par with ESXi I feel like this is one of the many issues they need to address. Another example would be just the UI. i know this is a matter of personal opinion but my preference definteily goes to ESXi. ESXi mostly has things laid out better and getting to / finding them just make sese.. I don't have to skip around to find stuff. An example here is configuring networking. In ESXi, it's pretty obvious when you create switches and such what you are creating, and which ones tie back an external NIC and such. In Prox it isn't quite so straight forward with just a bunch of textbox and dropdowns and just more limited info on what they are.

I mentioned it once but man, Proxmox really is like most linux distros. Very tempting to support, They are great for someone that doesn't really know anything else and are 100% experts at their systems, but ultimately after you get past the light user layer they stat falling apart.. Everything requires just so much more tweaking and pruning to get something running well.

I set up my entire initial server configuration in ESXi including vGPU, shared GPU, pass through GPUs, multiple virtual internal networks, vlans, etc, in about 2 hours. The only thing I had to touch the command line for (besides the vGPU as that has to be done regardless) is to write some scripts for starting and stopping some VMs based on another VM going up or down.

I want to do a more in depth comparison later when I have time to go through some of my pain points on Proxmox and find out what the expected way to do somethings are.
 
Last edited:
Welp, I had gone back over to ESXi to test things out and see what was so different. That is why I haven't replied in a few days, was testing with it. Works so much more beautfiully in ESXi without any kind of fiddling or tweaking required. Seems ESXi is automatically configured to detect GPUs and share them through host sharing (what I believe virtGL is supposed to achieve), and they just do it a lot better. For anything short of demanding games it will run all the gpu effected things perfectly fine like this in VMs.

If Prox really wants to be on par with ESXi I feel like this is one of the many issues they need to address. Another example would be just the UI. i know this is a matter of personal opinion but my preference definteily goes to ESXi. ESXi mostly has things laid out better and getting to / finding them just make sese.. I don't have to skip around to find stuff. An example here is configuring networking. In ESXi, it's pretty obvious when you create switches and such what you are creating, and which ones tie back an external NIC and such. In Prox it isn't quite so straight forward with just a bunch of textbox and dropdowns and just more limited info on what they are.

I mentioned it once but man, Proxmox really is like most linux distros. Very tempting to support, They are great for someone that doesn't really know anything else and are 100% experts at their systems, but ultimately after you get past the light user layer they stat falling apart.. Everything requires just so much more tweaking and pruning to get something running well.

I set up my entire initial server configuration in ESXi including vGPU, shared GPU, pass through GPUs, multiple virtual internal networks, vlans, etc, in about 2 hours. The only thing I had to touch the command line for (besides the vGPU as that has to be done regardless) is to write some scripts for starting and stopping some VMs based on another VM going up or down.

I want to do a more in depth comparison later when I have time to go through some of my pain points on Proxmox and find out what the expected way to do somethings are.

Definitely going to switch back over to the Proxmox drive and see if I can at least figure out how to get VirtGL working to see if that is indeed the only thing that is making the machines perform worse. I just don't know if Proxmox can even do what I'm trying to do here? I have 3 GPUs in the system. One would be used for vGPU primarily, it's an old Tesla T4. Another is ideally just shared to VMs through host sharing just to get some 3d hardware acceleration for animations / videos and such, it's a RTX A2000, and the last is a 4060 TI 16 GB for pass through only that I may use for AI processing or may use for a virtualized gaming machine sometimes.

Can this be configured in Proxmox?

With Free ESXi going away, for Homelabs there needs to be something else comparable to use. Maybe I'll get some free time and throw in some coding support on Prox to improve the things I feel like are shortcomings. Getting time is the tricky part lol.
 
Last edited:

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!