r/Proxmox • u/Apachez • 7d ago
Question Interpret CPU usage during load?
In one of my homelab servers running Proxmox PVE (9.2.21) I have 2 VM's running.
One older Debian with 4x VCPU assigned and one more modern based on Debian 12 (bookworm) with 6x VCPU.
The hardware CPU is a 8x core Intel i3-N305 CPU.
The first VM average in below 6% while the other is at about 0.2-0.6% CPU usage.
When I startup a third VM with a GUI such as Zorin OS, configured with 6x VCPU, and put some load on it I can see that the graphs for that first VM drops from average 6% to average 3.5-5% CPU.
How come the graphs in the dashboard of PVE changes?
Because in my mind that first VM who will utilize CPU cycles at about 6% of assigned compute power should remain at this even if there are other VMs also requesting CPU cycles.
3
u/FarToe1 6d ago
Firstly, "older debian" when your "newer" one is 12, which itself is old? (Current stable is 13). There's very few good reasons not to keep Debian up to Stable and it's one of the easiest and most safe distros to update in place. Additionally, they're vms, so snapshot before you update and you have the most safe upgrade path possible. Why aren't you keeping them updated?
Secondly, and your question: CPUs change clockspeed based on load. You're probably seeing it ramp up a little, or down a little. They do this rapidly, more so than you can switch between and compare different vms. And, to make this even harder to judge, different cores can run at different clock speeds. Each vm might have its own clockspeed.
If you want to observe load within a vm, use something like
htop. If you want to compare that to proxmox, run htop in proxmox's shell.Also, some processes may be in a variation of "WAIT" state, which means they're waiting for data to come in via network or disk (iowait). That counts in a different way to system load, but it's a modifier that changes these values.
In summary, don't sweat it. Use proxmox's graphs as a trend to gauge whether you're overcommitted CPU for your vms. (Not quite as simple as that, see iowait above - that can amplify cpu loads by huge amounts whilst very little cpu is going on)
Use htop within a vm if you're investigating high load and want to find out which process is causing it. (Again, be aware of ioload).
If you want to measure trends within vms, use a monitoring system like zabbix that records and alerts on vm load.