Diagnosing Unexplained High Load Average with Low CPU Utilization
Scenario Prompt:
“A production server alerts with a 1-minute load average of 42.0 on an 8-core machine. However, top reports 94% CPU idle. Web requests to this server are timing out. How do you diagnose the root cause?”
Substantive Technical Concepts to Hit:
Uninterruptible Sleep (State D)
Processes waiting on disk I/O, NFS mounts, or kernel mutexes enter State D and are counted in the Linux load average calculation.
Disk I/O Wait & Block Subsystem
Run vmstat 1, iostat -xz 1, or pidstat -d to identify disk queue saturation, await latency, and which processes are writing.
Kernel Stack Tracing
Inspect /proc/<pid>/wchan or /proc/<pid>/stack to see the exact kernel function where the stalled process is sleeping.
Hung Task & Filesystem Lockups
Review dmesg -T for kernel hung task warnings, block device hardware timeouts, or unresponsive network-attached storage.
- Is the server using local NVMe drives or network-attached storage (EBS/NFS)?
- Are any specific processes stuck in state D when running ps aux | awk '$8 ~ /D/'?
- Does iostat indicate await times greater than 50ms or %util pinned at 100%?