Proxmox VM CPU usage higher than in guest? It’s not a bug. The Proxmox GUI shows CPU usage relative to the host’s total cores, while the guest OS reports usage per its own vCPUs. So a VM with 2 vCPUs on a 16-core host that’s using 100% of its vCPUs will show as 12.5% in Proxmox. That’s the whole story — different denominators.

Why the numbers don’t match
The Proxmox web UI calculates CPU usage as vCPU time / host CPU time. So if your VM has 4 vCPUs and the host has 32 threads, the VM’s max possible usage in the GUI is 12.5% (4/32). Meanwhile, inside the guest, top or Task Manager shows usage per vCPU — so 100% means all 4 vCPUs are maxed out.
This trips people up because the numbers look wrong. You see 12% in Proxmox and think the VM is idle, but inside the guest it’s pegged at 100%. Or you see 50% in Proxmox and panic, but the guest is only using half its vCPUs.
How to convert between them
To compare apples to apples, multiply the Proxmox percentage by the host’s total threads and divide by the VM’s vCPU count:
guest_cpu_percent = (proxmox_percent * host_threads) / vm_vcpus
For example, a VM with 2 vCPUs on a 16-thread host showing 25% in Proxmox is actually using 200% of its vCPU capacity — i.e., both vCPUs maxed out. Conversely, if the guest shows 50% (one vCPU busy), Proxmox would show 6.25% (50% * 2 / 16).

What to actually check
If you’re worried about CPU usage, don’t rely on the GUI alone. Inside the guest, run top or htop to see per-core usage. On the host, use qm monitor <vmid> and type info cpus to see vCPU thread usage. Or use ps -o pid,pcpu,comm -p $(cat /var/run/qemu-server/<vmid>.pid) to get the QEMU process’s CPU usage on the host.
Also, make sure the QEMU guest agent is installed and enabled — it gives Proxmox better data for the summary page. Without it, the GUI may show stale or inaccurate numbers. I covered that in QEMU Guest Agent is not running.
My take
This is a stupid naming problem. Proxmox should label the metric “host CPU usage” or show both numbers. But it doesn’t, so you just have to remember: Proxmox = host-relative, guest = per-vCPU. Once you know that, the math is trivial. Don’t overthink it.