Blog Post
CPU oversubscription and new CPU jitter counters in Windows Server 2025
Thanks for this great articleMarkKilimov — it’s very relevant to what I’m testing now.
I’m working with Windows Server 2025 on a dual-socket AMD EPYC 9175F system, where each socket has 16 physical cores / 32 logical processors (with SMT enabled). NUMA topology is clean: each CPU has its own memory and NVMe storage attached.
This part caught my attention:
“Assigning specific LPs to a VM group ensures that the VMs in that group have exclusive access to these compute resources, eliminating competition with other groups.”
I’d like to:
- Create a CPU Group for LPs 0–31 (NUMA node 0: 16 physical cores / 32 LPs)
- Assign VMs to that group to fully isolate them on NUMA node 0
- Do the same for LPs 32–63 (NUMA node 1)
My goals are:
- Keep NUMA Spanning disabled
- Allow CPU oversubscription within a NUMA node
- Maintain full locality for CPU + memory + storage
Questions:
- Is cpugroups.exe still the correct (and supported) tool to create and manage this?
- Will CPU Groups guarantee that VMs in the group stay strictly on the defined LPs?
- Can this help overcome the current limitation in WS2025 where, with NUMA Spanning off, oversubscription per node is blocked?
Thanks in advance!
- festucJul 14, 2025Copper Contributor
I also tested changing the Hyper-V scheduler type via: bcdedit /set hypervisorschedulertype classic . Unfortunately, even when using the Classic Scheduler (type 0x2), Hyper-V 2025 still doesn’t allow vCPU oversubscription per NUMA node with NUMA Spanning disabled.