Home / Troubleshoot / Linux High Load Average
Linux · High Load Average

Linux High Load Average: How to Find the Real Bottleneck

Load average counts processes that are running OR waiting — including uninterruptible I/O waits. So a high number can mean CPU saturation or a disk bottleneck. The first job is telling which.

Step 1 — Read the load

uptime
top

The three numbers are the 1-, 5-, and 15-minute averages. Compare them to your core count: a load of 8 on 8 cores is fully busy; the same on 32 cores is light. A rising 1-minute over the 15-minute means the problem is getting worse.

Step 2 — CPU-bound or I/O-bound?

This is the key split. Use vmstat:

vmstat 1 5
  • High r column (runnable) with high us/sy CPU → CPU-bound. The CPU is the bottleneck.
  • High b column (blocked) and high wa (I/O wait) → I/O-bound. Processes are stuck waiting on disk.

Step 3 — Find the culprit

For CPU, sort processes in top by %CPU (press P) or use pidstat 1. For I/O, confirm the disk and find the offending process:

iostat -x 1
pidstat -d 1
ps -eo state,pid,comm | awk '$1 ~ /D/'

A process in D state (uninterruptible sleep) is waiting on I/O — those are what inflate load without using CPU. iostat's %util and await tell you if a disk is saturated.

Step 4 — Fix the root

CPU-bound: throttle or fix the runaway process, scale out, or optimize the hot code. I/O-bound: find what's hammering the disk (backup, log flood, swapping), check for swap with free -h (swapping shows as I/O wait), and address the storage bottleneck.

How Tech Matrix solves this in ~60 seconds

High load is ambiguous by design, and the slow part is running vmstat, iostat and pidstat and interpreting them together. Tech Matrix reads them on your host via a secure agent, decides CPU-bound vs I/O-bound, and names the offending process and disk — grounded in your distro and kernel — with your approval on every command.

Frequently asked questions

What does high load average mean on Linux?

Load average is the number of processes running or waiting to run, including those in uninterruptible I/O wait. High load can mean CPU saturation or a disk bottleneck.

How do I know if high load is CPU or disk?

Run 'vmstat 1'. High 'r' with high us/sy CPU is CPU-bound; high 'b' with high 'wa' (I/O wait) is I/O-bound. iostat -x confirms disk saturation.

What is a process in D state?

D state is uninterruptible sleep — usually waiting on disk I/O. These processes raise load average without consuming CPU. Find them with ps and pidstat.