What does load average mean on Unix/Linux?
Load average is a gauge of how many processes are on average, concurrently demanding CPU attention.
Generally, if you have one process running at 100%, and it just sits like that for all eternity, you can expect all values to approach '1'.
Generally, this is as efficient computing as you can get, no losses due to context-switches.
However, on modern multitasking OS's, there is more than one thing that needs CPU attention, so under a moderate amount of load from a single process, load average should float between 0.8 and 2.
If you decide to do something insane, like build a kernel with make -j 60
, despite only having one logical processor, then load average would rush towards 60, and your computer would be incredibly useless to you (death by context switch).
Also to note, this metric is irrespective of how many cores/CPUs there are. For a two-cored system, running one process that consumes a whole core (leaving the other idle) results in a load average of 1.0. In order to decide how loaded a system is, you'll need to know the number of cores and do the division yourself.
man 5 proc:
/proc/loadavg The first three fields in this file are load average figures giving the number of jobs in the run queue (state R) or waiting for disk I/O (state D) aver‐ aged over 1, 5, and 15 minutes. They are the same as the load average numbers given by uptime(1) and other programs.
In general it measures the number of active processes at a given time, but the metrics used to calculate it differ on some systems. The only article I've found that explains it fairly well is this one.