Interpret 1, 5 and 15-minute load averages relative to available CPU cores.
Linux load average approximates the number of processes that are running or waiting for CPU (and, historically, for uninterruptible I/O). It is only meaningful relative to the number of CPU cores: a load of 4 is idle on a 32-core server but is a warning sign of saturation on a 2-core one. Dividing load by core count gives a normalized per-core load, where 1.0 means the system is exactly saturated.
Per-core load
per_core_load = load_average / cpu_cores
A commonly cited rule of thumb is that load average should stay below the number of CPU cores; many operators target roughly 70% of core count as a comfortable ceiling with headroom for spikes.
Linux counts a process in the load average if it is running, runnable and waiting for CPU, or in an uninterruptible sleep state (usually waiting on disk I/O) — this is different from purely CPU-bound load metrics on some other Unix systems.
The 1-minute average reacts fastest to spikes but is noisy; the 15-minute average smooths out transient bursts and is a better signal of a sustained capacity problem. Many alerting setups watch all three together.