linux load average interpretation with vcpu [closed]

Solution 1:

You are conflating CPU usage in % with load average:

  • CPU usage % shows per-cpu non-idle time, ranging from 0% to 100% for each CPU core. This means that an heavy single-thread process will show 100% use over a single CPU core, while an heavy multi-threading process spawning 24+ threads will show 2400% (24x 100%) CPU usage

  • load average shows how many processes are waiting for their running slot. In other words, it shows how many processes are ready to run but they can not because the CPU has no time for them "just now", and are put to sleep in the ready-to-run queue. In our previous heavy multi-thread process scenario, a 24 thread process running at 2400% CPU load on a 24 cores/threads CPU will not result in a significantly higher load average (simply because a threads/core is available for each thread) unless other unrelated processes are fighting for they run slot (which are saturated by out multi-thread process).

In short, CPU load % shows how much time your CPU is busy, while load average how many processes are waiting for their turn.