Technical

Windows Server 2025 CPU suddenly at 100%: fix the VirtIO and power settings on Proxmox

Windows Server 2025 CPU suddenly at 100%: fix the VirtIO and power settings on Proxmox

Windows Server 2025 CPU suddenly at 100% is almost always VirtIO drivers or a stupid power setting. Not the workload — the VM config. Here’s what to check first.

Detailed view of a server rack with a focus on technology and data storage.

Check the VirtIO drivers

If you installed with the default IDE/SATA disk or e1000 NIC, Windows uses emulated hardware. That eats CPU for breakfast. Switch to VirtIO SCSI and VirtIO Net. You’ll need the VirtIO drivers ISO mounted during install, or add a second temporary disk to inject them after.

qm set 100 --scsihw virtio-scsi-pci
qm set 100 --net0 virtio,bridge=vmbr0

Then update the drivers inside Windows. Device Manager → update driver → point to the VirtIO ISO. Reboot. CPU should drop like a rock.

Power plan and CPU governor

Windows Server defaults to “Balanced” power plan. That’s fine on bare metal, but under KVM it can cause the guest to request high P-states constantly, pegging the host CPU. Set it to High Performance or, better, use the processor.max_cstate and intel_pstate=disable on the host. Actually, the simplest fix: in the VM’s Proxmox config, set CPU type to host and enable NUMA if you have multiple sockets.

qm set 100 --cpu host
qm set 100 --numa 1

Inside Windows, run powercfg /setactive SCHEME_MIN for High Performance. Or just disable C-states in the VM’s BIOS. That’s a known culprit for sudden 100% CPU on Server 2025.

System with various wires managing access to centralized resource of server in data center

Ballooning and memory pressure

If you enabled ballooning, Windows might be swapping like crazy because Proxmox is reclaiming memory. That shows up as 100% CPU because the guest is thrashing. Check the host’s memory usage. If it’s tight, either disable ballooning or give the VM a minimum that matches its actual need.

qm set 100 --balloon 0

Or set --balloon 4096 with a high minimum. Don’t let the host starve the guest.

What I’d do

Start with VirtIO. It’s the most common and the easiest to test. Then power plan. Then ballooning. One of those three will fix it. If not, check for a runaway process inside Windows — but on Proxmox, it’s almost always the VM config, not the app.

Leave a comment

Comments are reviewed before they appear. Your email is never published.