What Is Load Average in Linux: 1, 5, and 15 Minute Averages

You log in to a slow server, run uptime
or top
, and see three numbers next to “load average”. They look like a verdict on how busy the machine is, but a value of 2.5 means very different things on a laptop with two cores and a server with thirty-two. Read in isolation, the numbers say almost nothing.
This guide explains what the load average actually measures, why there are three of them, and how to decide whether a given value is healthy or a sign of trouble.
What the Load Average Measures
The load average is the average number of processes that are either using the CPU or waiting to run, measured over a period of time. On Linux it also counts processes in the uninterruptible sleep state, which usually means they are waiting on disk or other I/O. This last detail is what sets Linux apart from some other systems, and it is the reason a server can show a high load while the CPU looks mostly idle.
In short, the load average answers the question “how many tasks are competing for resources right now?” rather than “what percentage of the CPU is in use?” A process stuck waiting on a slow disk still counts toward the load, even though it is not burning any CPU cycles.
The Three Numbers
The load average is reported as three values. Running uptime shows them at the end of the line:
uptime 14:32:51 up 7 days, 3:14, 2 users, load average: 0.52, 0.74, 0.91The three numbers are exponentially weighted moving averages over the last 1, 5, and 15 minutes:
0.52- The average over the last minute.0.74- The average over the last 5 minutes.0.91- The average over the last 15 minutes.
Reading them together tells you the trend, which matters more than any single value. When the 1-minute number is higher than the 15-minute number, load is rising and the system is getting busier. When the 1-minute number is lower, a spike has passed and the system is settling down. In the output above, the load is gradually falling.
How Load Relates to CPU Cores
A load average means nothing until you compare it to the number of logical CPU cores, because each logical core can run one task at a time. A load of 1.0 means there is exactly enough work to keep one core fully busy. On a single-core machine that is full capacity, but on a four-core machine three cores are still idle.
The rule of thumb is to divide the load average by the core count:
- Load equal to the number of cores means the system is fully used with no waiting.
- Load below the core count means there is spare capacity.
- Load above the core count means processes are queuing and waiting for a turn.
Check how many logical CPU cores the system has with nproc:
nproc4On this four-core machine, a load average of 0.91 is comfortable, since it is well below 4. The same 0.91 on a single-core virtual machine would mean the CPU is nearly saturated. For a broader look at processor metrics, see the guide on checking CPU usage in Linux
.
Where to See the Load Average
Several tools report the load average, and which one you reach for depends on how much detail you want.
The quickest view is uptime, which prints the three values on a single line. The top
command shows the same numbers in its header and refreshes them live, alongside per-process CPU usage. The htop
command displays them too, with a friendlier interface and colored meters. The w command prints the load average above a list of logged-in users.
For scripting, read the raw values directly from the kernel:
cat /proc/loadavg0.52 0.74 0.91 1/523 18204The first three fields are the familiar 1, 5, and 15 minute averages. The fourth field, 1/523, shows the number of currently runnable scheduling entities over the total number of scheduling entities, and the last field is the PID of the most recently created process. Because the format is fixed, /proc/loadavg is convenient to parse in monitoring scripts.
Load Average Versus CPU Usage
It is tempting to treat load average and CPU usage as the same thing, but they answer different questions. CPU usage is the percentage of time the processor spends doing work right now. Load average is the number of tasks competing for the CPU and other resources, smoothed over time.
The gap between them shows up clearly with I/O. If a process is blocked waiting on a slow disk, it counts toward the load average but uses almost no CPU. You can end up with a load of 8 on a four-core box while top reports the CPU as 90 percent idle. In that situation the bottleneck is not the processor, it is the disk, and the fix is to investigate I/O rather than CPU. To find which resource is the real constraint, combine the load reading with tools such as top, vmstat, or iostat.
Quick Reference
| Reading | Meaning |
|---|---|
1-minute load | Short-term pressure. Reacts quickly to spikes. |
5-minute load | Medium-term pressure. Smooths brief changes. |
15-minute load | Longer trend. Best for sustained load. |
load < cores | The system usually has spare capacity. |
load = cores | The system is fully used, with little waiting. |
load > cores | Tasks are likely queuing for CPU time or I/O. |
FAQ
What is a good load average?
A load average below the number of logical CPU cores means the system has spare capacity. A sustained load above the core count means processes are waiting. There is no single “good” number, because it depends entirely on how many cores the machine has.
Is a load average of 1.0 bad?
On a single-core system, 1.0 means the CPU is fully used with no headroom. On a multi-core system, 1.0 is light, because the other cores are idle. Always divide the value by the core count from nproc.
Why is the load high when the CPU is idle?
Linux counts processes in uninterruptible sleep, usually those waiting on disk or other I/O, toward the load average. A high load with an idle CPU points to an I/O bottleneck rather than a processor one.
Which of the three numbers should I watch?
Compare them. If the 1-minute value is higher than the 15-minute value, load is climbing. If it is lower, a spike is passing. The 15-minute number is the best indicator of a sustained trend.
Conclusion
The load average is a measure of demand on the system, not a percentage, and it only makes sense when you compare it to the number of logical CPU cores. When a high load does not line up with CPU usage, suspect disk or other I/O, and use top
or iostat to find the real bottleneck.
Tags
Linuxize Weekly Newsletter
A quick weekly roundup of new tutorials, news, and tips.
About the authors

Dejan Panovski
Dejan Panovski is the founder of Linuxize, an RHCSA-certified Linux system administrator and DevOps engineer based in Skopje, Macedonia. Author of 800+ Linux tutorials with 20+ years of experience turning complex Linux tasks into clear, reliable guides.
View author page