This post documents the high level concepts I need to remember about *nix Load Average.

Load average can been seen in the output of uptime and top:

From uptime:

$ uptime
14:40  up 21 days, 21:48, 5 users, load averages: 2.63 2.75 3.45

From top:

root@blog-server-2:~# top -n 1 | head -2
top - 15:28:37 up 10 days, 12:41,  1 user,  load average: 0.04, 0.03, 0.00
Tasks:  95 total,   1 running,  94 sleeping,   0 stopped,   0 zombie
root@blog-server-2:~#

There are 3 decimal numbers shown. They present the load average over three different time scales:

  • last 1m
  • last 5m
  • last 15m

Load average tracks the number of processes which are currently being executed by the CPU or are waiting for the CPU to free up so they can be executed. (Source)

On a single core system, a value of 1.0 means roughly there’s always 1 process using or waiting on the CPU and a value above 1.0 means the CPU can’t keep up (something is always using the CPU).

Without knowing the number of CPUs your system have, the values are pretty meaningles. A load average of 2.0 indicates and overwhelmed CPU on a single core system, but is just fine on a 32 core system.

Here’s how to see your CPU core count per platform:

  • macOS: sysctl -n hw.ncpu
  • Linux: nproc --all