how to find the MAX IO a physical disk can support?

my application id doing IO, i can find the io-disk (Blk_wrtn/s) by using linux commands.

but how can i find what is max limit i can reach, i want to know if it can be further loaded.


Obiously using Unix tools is the easiest way to do it. You can measure the max operation by creating a test case and use appropriate tools to measure its perfomance. A good resource can be found here: LINUX - Test READ and WRITE speed of Storage

sudo hdparm -tT /dev/sdX

for example as read test.

And to measure write:

dd if=/dev/random of=<some file on the hd> bs=8k count=10000; sync;

# Hit CONTROL-C after 5 seconds to get results
# 65994752 bytes (66 MB) copied, 21.8919 s, 3.0 MB/s


Note As pointed out in the comments the dd command also measures the performance of the file system and even /dev/random. It does measure the write performance of an environment, that heavily depends on the hard disks performance, though.

  • what should the file testfileR contain and where it should be placed – weima Nov 4 '15 at 9:08
  • The command creates the file, it must reside on the hard drive you want to test. See the updated answer. – blissini Nov 4 '15 at 10:54
  • 1
    That's also measuring the performance of the file system and even /dev/urandom - all at once. – Andrew Henle Nov 4 '15 at 12:06
  • You are correct, @AndrewHenle – blissini Nov 5 '15 at 11:38

You can use a benchmarking tool like bonnie++

From the man page

Bonnie++ is a program to test hard drives and file systems for performance or the lack therof. There are a many different types of file system operations which different applications use to different degrees. Bonnie++ tests some of them and for each test gives a result of the amount of work done per second and the percentage of CPU time this took. For performance results higher numbers are better, for CPU usage lower are better (NB a configuration scoring a performance result of 2000 and a CPU result of 90% is better in terms of CPU use than a configuration delivering performance of 1000 and CPU usage of 60%).


Blk_wrtn/s really depends on the type of workload. Linear write is much faster, random write can be really slow. So you will not be able to say one number, but there are a lot of tools to simulate and benchmark different workloads, e.g. iozone, dbench.

Now to monitor the current workload, I usually use iostat. E.g.:

iostat -x 10

The last column is %util, if that is below 100, you can still put some IO load there. Of course, you always want to have some reserve, so 60-90% is a realistic target based on the stability of the workload and the required responsiveness.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.