Linux Load Average: A Comprehensive Guide

Understanding System Load Averages
On Linux, Mac, and other Unix-like operating systems, "load average" figures are commonly displayed.
These values indicate the current demand placed on the system’s CPU, disk, and other vital resources.
While initially appearing complex, understanding load averages is straightforward with a little familiarization.
Where You'll Find Load Averages
Regardless of whether you are managing a Linux desktop computer or a server environment, you will likely encounter a "load average" metric.
This measurement is also present in Linux-based router firmware, network-attached storage (NAS) systems utilizing Linux or BSD, and even Mac OS X.
Essentially, it’s a ubiquitous indicator of system performance across a wide range of platforms.
What Do Load Averages Represent?
- Load averages provide a snapshot of system activity over specific time intervals.
- Typically, three load averages are shown: the average over the last 1 minute, 5 minutes, and 15 minutes.
- These averages reflect the number of processes waiting to use the CPU.
A higher load average suggests a busier system, while a lower average indicates less demand.
Interpreting these numbers accurately is key to assessing system health and identifying potential bottlenecks.
Load vs. Load Average
Related: What Is Unix, and Why Does It Matter?
In Unix-based operating systems, such as Linux, system load represents the amount of work the system is currently handling. This metric is presented as a numerical value. A system that is completely inactive will exhibit a load average of 0.
Each process actively utilizing or contending for CPU resources contributes 1 to the load average. Consequently, a system load of 5 indicates that five processes are either actively using the CPU or are queued, awaiting access.
Historically, Unix systems primarily tallied processes awaiting CPU time. However, Linux extends this calculation to include processes pending on other resources, like disk I/O operations.
The raw load number, taken in isolation, offers limited insight. A computer’s load can fluctuate rapidly, shifting from 0 to 5 within a fraction of a second as processes demand CPU cycles.
An instantaneous load reading would therefore be largely uninformative. Instead, Unix-like systems present the load average.
The load average is calculated as the average system load over a defined period, providing a more stable and meaningful indication of system workload.

Determining the System Load Average
Related: Essential Linux Terminal Process Management: 10 Commands to Master
The system load average is frequently displayed across a variety of graphical interfaces and terminal-based tools. Examples include the top command and the GNOME System Monitor. The most straightforward and consistent method for viewing your load average is by executing the uptime command within a terminal.
This command provides your computer’s current load average, alongside the duration of its uptime. It’s a quick and reliable way to assess system performance.
The uptime command is compatible with Linux, macOS, and other Unix-like operating systems. If you are utilizing a Linux or BSD-based device featuring a web-based interface – such as the DD-WRT router firmware or a FreeNAS NAS system – the load average is likely presented on its status page.

Interpreting Load Average Values
Initially, the values presented by a load average may appear cryptic. Consider this example of a load average report:
load average: 1.05, 0.70, 5.09
These figures, read from left to right, represent the average system load calculated over the preceding one minute, five minutes, and fifteen minutes, respectively. Specifically, the example above indicates:
Load average for the past 1 minute: 1.05
Load average for the past 5 minutes: 0.70
Load average for the past 15 minutes: 5.09
The corresponding timeframes are often abbreviated for conciseness. With practice, you can rapidly interpret the load average figures and their implications.

Understanding Load Averages on Linux and Unix-like Systems
Let's analyze the provided numbers to clarify the meaning of the load average. Considering a single-CPU system, these figures indicate the following:
- Over the last minute: The system experienced an average overload of 5%, with approximately 0.05 processes contending for CPU time. (1.05)
- Over the last 5 minutes: The CPU was idle for 30% of the time. (0.70)
- Over the last 15 minutes: The system was, on average, overloaded by 409%, meaning 4.09 processes were waiting for the CPU. (5.09)
If your system features multiple CPUs or a multi-core processor, the interpretation of load average numbers shifts slightly.
For instance, a load average of 2.0 on a single-CPU system signifies 100% utilization – one process actively using the CPU while another waits. On a dual-CPU system, this represents full usage, with two processes each utilizing a separate CPU. With four CPUs, it indicates 50% usage, where two processes occupy two CPUs, leaving the other two idle.
Interpreting Load Averages Based on CPU Count
Determining the significance of a load average requires knowledge of your system’s CPU count. A load average of 6.03 would suggest severe overload on a single-CPU machine, but would be acceptable on a system equipped with 8 CPUs.

The load average is particularly valuable for monitoring servers and embedded systems. A quick glance provides insight into system performance.
If the load average indicates overload, it may be necessary to address resource-intensive processes, augment hardware resources, or redistribute the workload across multiple systems.
Linux Commands | ||
Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr | |
Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts