← All insights
ENGINEERING JOURNAL / Linux Performance

Linux High Load but Low CPU: What to Check

Investigate high Linux load with low CPU usage by examining runnable tasks, uninterruptible waits, storage and pressure signals.

INFRASTRUCTURE AS CODE
Illustration for Linux High Load but Low CPU: What to Check
● ● ● clouvenix / engineering-notes

Understand the measurement

Linux load averages describe the average number of runnable tasks and tasks in uninterruptible sleep over the reported intervals. They are not simply CPU utilization percentages. A high value can therefore coexist with modest CPU use when tasks are waiting on a dependency.

Compare load with the number of available CPUs or the container's actual CPU allocation, and consider the trend rather than one sample. Note whether users are experiencing latency and which workload changed.

Find where work is waiting

Inspect process states and identify tasks accumulating in uninterruptible sleep. Correlate the time window with storage latency, network filesystems, blocked I/O and kernel messages. Check CPU run-queue pressure separately; a low host-wide average can hide contention within a limited container or cgroup.

Pressure stall information, where available, can show time lost to CPU, memory or I/O contention. Use it with application latency and storage metrics rather than treating any single counter as the root cause.

Change only after identifying the dependency

Capture evidence before restarting processes where practical. A restart may hide a recurring storage or network issue and may interrupt writes. Check filesystem health and provider events, then use a service-specific recovery procedure.

After the change, compare the same workload, load trend, pressure signals and user response times. Document what was waiting and why; adding CPU alone will not necessarily resolve an I/O bottleneck.

Further reading

Read the official documentation. For help applying these checks, explore Clouvenix services.

Share this article

FacebookLinkedInWhatsApp