CPU Load
CPU Load
The CPU load is defined as the amount of CPUs (cores) consumed during a certain time period. It is a dimensionless value as it is calculated as seconds per second.
Not to be confused with Linux/UNIX Load average (which is the amount of processes on the run queue)
Also not to be confused with CPU Percentagees (busy, idle, user, system etc). They are related but not the same.
Example
A system has 2 sockets, 8 cores per socket, 2 threads per core. Linux reports 32 CPUs (threads). When all CPUs are fully occupied, the load is 32. If only half of the CPUs are busy (or equivalent, all CPUs are busy half of the time) the load is 16.
The load over multiple servers can be summed up - but only makes sense if all servers use the same CPU type and model.
Caveats
- Sometimes the sum of busy and idle time on a host does not completely add up to 100% - some CPU timeslices are "leaking"
- A CPU second is not in all circumstances a measure for the same amount of power. Due to hyperthreading, interrupts or virtualization, a second of CPU busy may have some of its CPU cycles "stolen".
- Differences in CPU performance cause the summation of CPU load across multiple servers to be less accurate or even meaningless - unless the load is multiplied by a relative performance factor based on some kind of benchmark