Load average is one of the fastest ways to see whether a Linux system is starting to queue work, because it summarizes how many tasks are ready to run or stuck in uninterruptible sleep. When shells feel laggy, scheduled jobs start drifting, or application response times climb, checking load average gives you an immediate pressure signal before you drill into individual processes.

Linux reports load as 1, 5, and 15-minute averages. The values come from the scheduler view of runnable work plus tasks waiting in uninterruptible sleep, usually I/O waits, so the same numbers appear in uptime, w, top, and /proc/loadavg even though each tool presents them in a different context.

The numbers are not normalized for CPU count, so the same load average means very different pressure on a 2-thread VM than on a 32-thread host. Compare the values to the processors available to the current process with nproc; in containers or cgroup-limited sessions, that may be lower than the host total. If load stays high, use top to decide whether the system is short on CPU time or mostly blocked on I/O.

Steps to check load average in Linux:

  1. Display the standard 1, 5, and 15-minute load averages with uptime.
    $ uptime
     04:32:27 up 2 days, 15:05,  0 user,  load average: 2.35, 3.84, 4.04
  2. Show the same load-average header with w when you also want current login activity.
    $ w
     04:32:27 up 2 days, 15:05,  0 user,  load average: 2.35, 3.84, 4.04
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU  WHAT

    w prints the same header line as uptime, then adds the active user-session table.

  3. Compare the load averages to the processors available to your session.
    $ nproc
    10

    Load average is not adjusted for CPU count. Sustained 1-minute load near the nproc value means the system is roughly keeping every available CPU busy, while sustained values above it usually mean runnable work is queuing or tasks are blocked in I/O wait.

  4. Read the raw scheduler counters from /proc/loadavg when you need the kernel values directly.
    $ cat /proc/loadavg
    2.35 3.84 4.04 3/418 13

    The first three fields are the same 1/5/15-minute load averages. The fourth field shows current runnable scheduling entities over the total number of entities, and the fifth field is the most recently created PID.

  5. Capture a one-shot summary with top when you need load average plus CPU idle and I/O wait in the same view.
    $ top -b -n 1 | head -n 5
    top - 04:32:27 up 2 days, 15:05,  0 user,  load average: 2.35, 3.84, 4.04
    Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie
    %Cpu(s): 10.6 us,  4.8 sy,  0.0 ni, 82.7 id,  0.0 wa,  0.0 hi,  1.9 si,  0.0 st
    MiB Mem :  23744.6 total,  14751.6 free,   3108.9 used,   6240.0 buff/cache
    MiB Swap:   1024.0 total,   1024.0 free,      0.0 used.  20635.8 avail Mem

    High load with plenty of idle CPU but rising wa usually points to storage or network I/O stalls rather than CPU saturation.