The load average is a set of three numbers representing the average number of processes that were either running or waiting (for CPU or uninterruptible I/O) over the past 1, 5, and 15 minutes. It is reported by uptime, top, w, and /proc/loadavg, and is one of the oldest and simplest indicators of how busy a Unix system is.
uptime
# 14:33:15 up 10 days, 2:45, 1 user, load average: 0.52, 0.81, 1.23
cat /proc/loadavg
# 0.52 0.81 1.23 3/512 9876
On Linux (unlike classical Unix), the load average includes processes in uninterruptible sleep (state D), which means disk-bound processes contribute even if they aren't using CPU. A load average of 1.0 means the equivalent of one fully occupied CPU. For a multi-core system, compare load to the CPU count: load 4 on an 8-core box means roughly half utilised.
A rule of thumb: load consistently above the CPU count indicates contention; load rising faster than new work is being scheduled indicates runaway growth. It is a lagging, coarse indicator—fine for noticing something is wrong, but not for diagnosing what. For that, drill down with vmstat, iostat, pidstat, perf, or top to identify CPU, I/O, memory, or lock contention specifically.
Discussed in:
- Chapter 19: Performance and Observability — Load Average: The Thirty-Second Overview
Also defined in: Textbook of Linux