linux load average interpretation with vcpu


I have a workstation with following CPU spec -

Dual (two) Intel Xeon X5675 CPUs - 6 cores each - that's total of 12 cores / 24 threads. 

If all the cores were utilised, given the total threads is 24, is the expected load average 24 or 2400 ?

The current utilisation with running multiple background jobs is as follows -

I'm wondering if the system is super overloaded or is it fine for the spec I have

---------------Answer---------------

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.


Previous : Scan Mounted Ext3 File System on runtime
Next : How do I calculate the sum of all the array numbers after the first negative?