7

How to find the MAX I/O a physical disk can support?

My application is doing I/O, and I can find the actual throughput (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.

AdminBee
  • 22,803
weima
  • 183

3 Answers3

5

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


flag

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.

blissini
  • 364
4

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.

P.Péter
  • 525
1

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%).