Opyntel

Linux load average: what the three numbers mean and when to worry

The Linux load average is the average number of processes that are running or waiting to run, over the last 1, 5 and 15 minutes. Compare it with the number of CPU cores: on a 4-core server, a load of 4 means every core is busy, and anything above means work is queueing. On Linux the count also includes processes waiting on disk or network storage, so load can be high while the CPU sits idle.

Read the load average

bash
uptime
 14:02:11 up 12 days,  3:41,  1 user,  load average: 3.12, 1.85, 0.90

nproc        # number of CPU cores to compare against

The three numbers are the last 1, 5 and 15 minutes. Reading them left to right shows the trend: here load is rising, because the last minute is busier than the last quarter of an hour. top, w and cat /proc/loadavg show the same figures.

Load compared with coresWhat it means
Well below the core countSpare capacity
About equal to the core countFully used; new work starts waiting
Above the core count for minutesWork queues and responses slow down
High while CPU is mostly idleProcesses are waiting on disk or storage, not CPU

Is it CPU or I/O?

bash
vmstat 1 5      # r: runnable processes, b: blocked on I/O, wa: CPU time waiting on I/O
top             # %Cpu(s): us and sy are work, wa is I/O wait, st is time stolen by the host
  • High r and high us or sy: the CPU is the limit. Find the process with top and press P to sort by CPU.
  • High b or wa: processes wait on disk. iostat -x 1 (package sysstat) shows which disk is saturated, and sudo iotop (package iotop) which process reads or writes. A server that swaps hard shows up here too; see how to check memory usage on Linux.
  • High st: on a VPS with shared CPU, other tenants on the same host take CPU time from you. A dedicated-CPU plan is the fix.

Bring the load down

  • Stop or reschedule the batch job, backup or build that runs at the busy time.
  • Cap a noisy container with --cpus or cpus in Compose so it cannot take every core.
  • For I/O wait, move logs, databases or Docker data to a faster or separate volume, or clean up the disk.
  • When load stays above the core count at normal traffic, the server is too small for what runs on it.

How Opyntel watches load and CPU

The Opyntel agent runs on each server with one docker run command and reports load average, CPU and CPU per container from inside the server, using outbound HTTPS only. Opyntel keeps that history and alerts when CPU passes your threshold, by email, Slack or SMS depending on your plan. Every server sits in one dashboard with its memory, disk and containers, next to the other platforms you run, so a server that is slowly running out of headroom stands out before its users notice.

FAQ

Load average questions, answered

Good values, load against CPU usage and the three numbers.

Below the number of CPU cores. A load of 2 is light on an 8-core server and heavy on a 1-core VPS; nproc shows the core count.

Linux counts processes waiting on disk in the load. Check the wa column in top or vmstat: high I/O wait means the disk is the bottleneck.

The average load over the last 1, 5 and 15 minutes. Read left to right, they show whether load is rising.

No. CPU usage is how busy the cores are; load is how many processes want a core or wait on I/O, so it can be higher than the number of cores.

The alerts your platform doesn’t send.

One dashboard for everything you run, with the alerts your platforms leave out. Read-only, nothing to install in your apps.

See how it works