yawgpp (Yet Another Windows Guest Performance Post)

alexskysilk

Distinguished Member
Oct 16, 2015
2,732
961
213
Chatsworth, CA
www.skysilk.com
in the many years I've been using PVE, I havent had much call for using Windows guests, and when I did it was usually Windows 2016 (and older before) and had reasonably good results. In the last few weeks, I had need of a Windows guest for a specific purpose and I figured its a good time to set up a W11 guest and see how it behaves. the following represents my lessons learned. This is not a complete list of recommendations by any stretch- you can and should follow the PVE windows guest documentation before any of this becomes relevant.

1. Most threads I read (and personal experience) suggested to stay away from host CPU type. While this remains true, the USUAL alternative is x86-64-v2-aes. Turns out, THIS IS AN ABSOLUTELY TERRIBLE choice for Windows 11- even if it worked perfectly fine for w10/2016. the MINIMUM model required for acceptable performance is x86-64-V3 (W11 makes use of AVX2 calls which v2-aes lacks.)
2. Memory integrity must be turned off inside the guest (looks like this is known.)
3. Windows 11 behaves quite a bit better if it knows its a VM. thankfully, this can be achieved simply enough like so:
Code:
qm set 101 --args "-cpu x86-64-v3,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_synic,hv_stimer,hv_vpindex,hv_reset,hv_frequencies,hv_runtime,hv_tlbflush,hv_ipi,aes,+kvm_pv_unhalt"
(change cpu type to newer if your CPU has newer functions available)
4. NUMA should be enabled regardless of number of CPUs on anything made in the last 10+ years.
5. NTFS guest FS benefits noticeably from vdisk caching. If your underlying storage allows it, cache=write back helped quite a bit (I didnt bother benchmarking since I dont have a use case, just noticeable behavioral improvement.)

I hope this helps someone :)
 
  • Like
Reactions: Johannes S