Site Reliability Engineering interview question · Most asked

A Linux server has a high load average. How do you find out why?

Create a free account to save this page, take notes and track your progress. Sign in

Summary

Load average counts runnable tasks plus tasks in uninterruptible sleep (usually waiting on disk or network I/O), averaged over 1, 5 and 15 minutes. Compare it with the CPU count, then check whether CPU is busy (top, mpstat), tasks are blocked on I/O (vmstat 'b' column, iostat -x), memory is short (swapping, free, vmstat si/so), or something else saturates.

Longer Answer

A quick sequence (similar to Brendan Gregg's "Linux performance analysis in 60 seconds"): uptime, dmesg | tail (OOM kills, errors), vmstat 1, mpstat -P ALL 1, pidstat 1, iostat -xz 1, free -m, sar -n DEV 1, sar -n TCP,ETCP 1, top. High load with idle CPU usually means I/O wait or many blocked threads; high load with saturated CPU means not enough CPU (or a runaway process). In containers, also check CPU throttling from cgroup limits.

Key Points

  • Load = runnable + uninterruptible tasks.
  • Compare with CPU count.
  • CPU vs I/O vs memory vs throttling.
  • vmstat, mpstat, iostat, pidstat, dmesg.

More most-asked Site Reliability Engineering questions

← All Site Reliability Engineering questions

Was this page helpful?