Technical

Proxmox VM CPU Usage Higher Than in Guest: Which Number Is Real

Proxmox VM CPU Usage Higher Than in Guest: Which Number Is Real

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.

Detailed image of a vintage motherboard featuring an Intel 486 chip, showcasing the complexity of retro computing compon

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).

Detailed close-up image of a vintage motherboard showcasing microprocessor and components.

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.

Leave a comment

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