My understanding of load average lead me to be quite shocked with my current system. The CPU in my workstation is an i7 with hyperthreading enabled, and cat /proc/cpuinfo produces 4 'cpu's.

That all given, my PC can generate over a 16 in all the load average slots from 1 minute to 15 minutes while compiling packages for Gentoo, but still be working perfectly for all other tasks as well. I've even seen it as high as 24, though it was starting to slow down at that point. How does this work, if 1.0 is supposed to represent one core at full utilisation?

2 Answers 2


1.0 is an average of one job waiting over the given time period, not 1 core at 100% utilisation.

An idle computer has a load number of 0 and each process using or waiting for CPU (the ready queue or run queue) increments the load number by 1. Most UNIX systems count only processes in the running (on CPU) or runnable (waiting for CPU) states. However, Linux also includes processes in uninterruptible sleep states (usually waiting for disk activity), which can lead to markedly different results if many processes remain blocked in I/O due to a busy or stalled I/O system. This, for example, includes processes blocking due to an NFS server failure or to slow media (e.g., USB 1.x storage devices). Such circumstances can result in an elevated load average, which does not reflect an actual increase in CPU use (but still gives an idea on how long users have to wait).

from here


Traditionally, Unix systems have considered processes "runnable" if they weren't sleeping or they were sleeping for very short term waits, e.g. page waits. To this list Linux has added uninterruptible I/O waits that can inflate the load average values.

Also, nice'd processes might be runnable but because of their lower priority receive no actual CPU time when the system is busy. Thus these processes can also increase the load average without making the system feel loaded.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .