High loads and low CPU usage? And now?

Recently one of our servers showed unusual high loads without any memory or CPU intensive tasks active. Some notes about how to debug io bottlenecks.

On Unix systems load is an inidcator for the number of processes active at a certain time. High loads mean that many processes are either processed by the CPU simulateniously or are waiting for input (network / io / …). The higher the load the more sluggish the system becomes.

In our case we had the situation that the system showed unusual high loads. Memory consumption was rather low; no swap space used whatsovever. The processlist (top) did not show any strange entries. No CPU or memory intensive processes were active.

With these observations, namely low memory, low cpu usage, the most promising point of attack seemed to be io performance. For this purpose – and as a sort of personal note as well – the following two commands proved quite handy:


vmstat 1 can be used to give you an overview over system, swap and io activity as well as memory consumption over time. In our case this proved that a lot of disk activity was going on.

iostat from the iostats package gives you a nice overview over disc activity and – even more important – the time your system is waiting for io activites to finish. With iowait well above 50 % the high system load could be explained.