Linux: How to find out whether the harddrive is causing a bottleneck?

I'm not asking how to find out where a bottleneck is. I just what to know how to check if the harddrive is being used at its limit (and hence causing a bottleneck).

Something like top where I can see a usage percentage of CPU and RAM.
Is there something like that with which I can monitor harddrive activity?

Native linux tools preferred.


Take a look at:

  • iostat
  • vmstat -d 2
  • dstat
  • iotop

You want the sysstat utilities: iostat and sar are what you'll find most useful, I think.

iostat will give you current stats. sar will grab and store and show you historical stats.

Also possibly useful is iotop, which is like iostat but ties things to PIDs. It's newer though, and I don't know as much about it.


You already mentioned top. It's useful enough to give you a simple realtime figure.

Check the %wa counter on the CPU line near the top of the screen. It tells you the percentage of time the CPU currently spends waiting on I/O. This should be close to zero.


I'm a huge fan of iostat for watching disk activity on the console. You'll be able to see the IOPs being service by the drive, throughput, it's utilization %, request wait time and more. If you are seeing high wait, service and utilization that'll be the give away.