How to check load average in Linux

Load average is a fast pressure signal when a Linux server feels slow, batch jobs drift, or application response time rises before one process obviously stands out. It shows how much work is runnable or stuck in uninterruptible sleep over recent time windows, so it is a starting point for deciding whether the system is keeping up or queueing work.

Linux reports load averages for the last 1, 5, and 15 minutes. The same three values appear in uptime, w, top, and /proc/loadavg because those tools read the kernel's load-average counters and present them with different surrounding context.

Load average is not normalized by CPU count. A load of 4 is a very different signal on a small virtual machine than on a large host, and containers or CPU quotas can change how many processors are available to the current session. Compare the load values with nproc, then use top to see whether CPU time is available or whether I/O wait is part of the pressure.

Steps to check load average in Linux:

  1. Display the standard 1, 5, and 15-minute load averages with uptime.
    $ uptime
     12:21:46 up 1 day, 56 min,  0 users,  load average: 0.05, 0.06, 0.12
  2. Show the same load-average line with w when login activity also matters.
    $ w
     12:21:46 up 1 day, 56 min,  0 users,  load average: 0.05, 0.06, 0.12
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU  WHAT

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

  3. Compare the load averages with the processors available to the current session.
    $ nproc
    8

    nproc reports processing units available to the current process, which can be lower than the installed CPU count when container limits, CPU affinity, or scheduler policy apply.

  4. Read the raw kernel counters from /proc/loadavg when a script or low-level check needs the source values directly.
    $ cat /proc/loadavg
    0.05 0.06 0.12 1/267 26

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

  5. Capture a one-shot top summary when load average needs CPU and I/O wait context.
    $ top -b -n 1
    top - 12:21:47 up 1 day, 56 min,  0 users,  load average: 0.05, 0.06, 0.12
    Tasks:   2 total,   1 running,   1 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 98.9 id,  1.1 wa,  0.0 hi,  0.0 si,  0.0 st
    MiB Mem :  11948.5 total,   8289.3 free,    754.1 used,   3152.4 buff/cache
    MiB Swap:   4096.0 total,   4096.0 free,      0.0 used.  11194.4 avail Mem
    
        PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
          1 root      20   0   16568   8080   4988 S   0.0   0.1   0:00.00 sleep
         15 root      20   0    7008   4300   2400 R   0.0   0.0   0:00.01 top

    High load with low CPU idle usually points to CPU saturation. High load with plenty of idle CPU but rising wa points toward storage or network I/O waits.