Here is a really nice article on how to think about load average, using a
traffic analogy:

http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

As others have pointed out, if your CPU usage numbers are low and load
average is high, you are most likely I/O bound (e.g. disk or network I/O).
 To determine what is causing your computer to be I/O bound, you can use
atop, iotop, iostat, dstat, etc.

Another way to tell that a system is I/O bound using regular "top" command
is to press "1" while running "top" to split the stats by CPU core.  For
each CPU core, "top" will show %us (user time) %sy (system time) %id (idle)
%wa (I/O wait) etc.

Here is a CPU bound example.  In the top output below, I'm running the
"openssl speed" benchmark, and you can see one of the cores is using 100%us:

top - 09:44:26 up 8 days, 17:22,  5 users,  load average: 0.95, 0.61, 0.26
Tasks: 227 total,   3 running, 222 sleeping,   0 stopped,   2 zombie
Cpu0  : 12.6%us,  0.7%sy,  0.3%ni, 86.4%id,  0.0%wa,  0.0%hi,  0.0%si,
 0.0%st
Cpu1  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,
 0.0%st

And here is an I/O bound example.  I'm running "sudo dd if=/dev/sda
of=/dev/null".  You can see that the %wa times are relatively high, as is
the load average:

top - 09:53:17 up 8 days, 17:30,  6 users,  load average: 2.61, 1.06, 0.47
Tasks: 229 total,   1 running, 226 sleeping,   0 stopped,   2 zombie
Cpu0  :  6.0%us, 11.6%sy,  1.3%ni,  3.0%id, 77.8%wa,  0.0%hi,  0.3%si,
 0.0%st
Cpu1  : 10.9%us,  5.6%sy,  0.3%ni, 52.3%id, 30.8%wa,  0.0%hi,  0.0%si,
 0.0%st

On my Ubuntu desktop, I always have the System Monitor panel installed and
configured to show I/O wait times as well as network and disk I/O at a
glance.  I usually set the I/O wait color to purple to let me know at a
glance whether my laptop is CPU or disk I/O or network I/O bound.  In the
attached screenshot taken during the "dd" command above, you can clearly
see that the I/O wait time is dominating, as is disk I/O.

Cheers

Paul

Reply via email to