IOPS Calculation

Greetings to all,

I see almost all good SMB and Enterprise customers being serious about their Storage Sizing,This is good sign because in case of an inadequate or wrong knowledge of sizing of the storage anyone can easily mess-up the entire solution design and the committed delivery. IT Infrastructure Design road map cannot afford to ignore the Storage correct sizing.

1st and foremost important fundamentals to be understood in storage is IOPS

Q.1 what is IOPS ?

IOPS stands for Input/output Operations per Second, in simple words physical read/write operations a device can perform in one second. It is common measurement factor of any storage system performance but there are many other factors which are also considered while calculating storage performance I.e. Storage Interface, controller, Cache etc…

Q.2 How to calculate the maximum IOPS of any Disk or DISK Array?

Formula is fairly simple

IOPS = 1000/ [average latency (in sec) + average read/write seek time (in sec)]

So let's calculate a Single Drive's Maximum IOPS with certain assumption, Assume that we have a Seagate ST4000DM000 4TB 15 K RPM hard disk. It is rated as follows:

Average latency (avgLatency): 2.95 ms

Average seek time (avgSeek): 3.56 ms

To calculate this disk's IOPS, use the following equation: IOPS = 1000/ ( avgLatency + avgSeek )

For our example disk, the equation would be (note the values of avgLatency and avgSeek are measured in seconds):

IOPS = 1000/ (2.95 + 3.56)

IOPS = 153

Note :You can use windows Perfmon to find out the disk read /write latency or else you can use HDD manufacturer benchmark reports ,datasheet etc..

Q. 3.What is the total IOPS in case of RAID Disk, will it increase the IOPS?

Yes! Cluster of DISK increase IOPS but not in all cases .this is not true in case of simple Mirroring disk or striping disk Array because just mirroring the maximum IOPS will not increase the Total IOPS,it  will be calculated based on single disk IOPS .But It is also true that the more drives you have the more IOPS you get and this is true in case of specific RAID Array.

HDD RPM with Approx. estimated Max IOPS

Note: keep in mind that IOPS measurements are also largely impacted by the block size, Mostly storage vendors calculate IOPS based on 4k block size which is totally irrelevant in case of SQL server or an application which read data in 64 K or higher (refer below table)

IOPS (IO/s) and throughput (MB/s) are two common performance measurements for storage devices, such disk drives and RAID sets. Most offer IOPS measurement is used for random, small block (4-8 KB) read and/or write operations, typical for OLTP applications. MB/s is used for large block (>= 64 KB) random or sequential operations, such as file transfer and streaming.

One Statistics of Approx. IOPS and throughput-numbers for different disk drive types:

Note: Maximum IOPS are impacted by Block size

So here is some basic calculation for RAID IOPS

Let's dig the subject and understand it though one more better illustration


The Expected IOPS

Given the disk configuration above, we can calculate what we expect to get for IOPS.  Looking at the "assumptions" in the above table, we assume the disks comprising E and F are rated at 175 IOPS per disk, and the disks comprising G are rated at 125 IOPS.  So, for each array, the math looks like this.

Measuring IOPS

If we sample Disk Reads/sec and Disk Writes/sec, for a period of time, we can calculate average IOPS as follows.  Remember that we'll also be figuring Maximum into our review.

I recommend sampling these counters for each instance, for a 24 hour period, with at least 1 minute interval.  Of course, the more samples you collect, the more accurate the calculations will be.  However, I don't think it's necessary to sample more than once every 15 seconds.


This is the average IOPS you are currently getting out of your configuration.  Using the formulas in the table above, the math looks like this.

NOTE: Maximum is calculated using top IO sampled for each type during the sampling period.  So this is the theoretical maximum IOPS for the array.

Thank You | Ashok


2 thoughts on “IOPS Calculation

  1. Charles Derber

    It is informative…!

    For MS Exchange IOPS and throughput both matters very much – thumb rule is not to exceed 20ms during read/write on the sized disk for Exchange, anything between 10-15ms is good testing done through Jetstress or vendor recommended tool.

    & if the tool results RED during several test exceeding the maximum millisecond its not the Jetstress but the storage(keeping in mind the throughput i.e. how fast it is accessible to Exchange MBX) who is SICK and need to be reconfigured to work well with Exchange 🙂

    If anybody wants to start with specific to Exchange here are the two great articles to start with sizing.

  2. BennyKulka10

    I noticed that it’s hard to find your website in google, i found it on 21th spot, you should build some quality backlinks to rank it in google and increase traffic. I had the same problem with my blog, your should search in google for – k2 seo services – it helped me a lot

Comments are closed.