Understanding disk IOPS
You surely have already seen those figures, a 15K disk does +/- 210 IOPS whilst SATA disk can barely achieve 30-40 IOPS.
How do they do to determine disks IOPS?
It is far from obvious and you must refer to the technical details provided by the disk manufacturer and use a simple formula given below. Also this is the theory, no file system, no data, no OS, this is raw disk power right off the pipe. Now let’s have a look at the formula:
1/(average latency in ms + average seek time for read or write in ms)
This is the specifications of a Seagate Cheetah 300GB 15K disk and actually have a look at the latency and seek times, that’s what we need for the formula.

So for this particular disk, theoretically the maximum we can expect is 1/(.0022)=454IOPS
And for the minimum, that I would call the best of the worst case, we can expect 1/(.006)=166IOPS
That gives us an average of 310IOPS! Not bad for the latest of Seagate’s high end disks family.
Now that you have the formula, go and check your own disk max/min/average IOPS and post it here
Also read my other post on IOPS where I give the formula to calcuate the IOPS you can expect of a virtual environment.












Hi,
A valiant attempt to determine IOPs, but wrong … talking theoretical maximum is pointless. In theory one could get into an IO loop reading onlydata from a single track thus eliminating track seek times and the measured performance gets event better.
In reality one must take the Average Seek time to get a real feel for the maximum performnce of a disk in th ereal world.
Workloads are being condensed onto a smaller footprint and thus there is more contention and thus all IO tends to be random so the average response is the measure.
So for real world plannng using the 166 IOPs when sizing solutions … 310 IOPs – thats a pipe dream …
Tony
You are absolutely right Tony… This is theoretically the maximum speed you could get, as stated, raw power. In real world, this is another story and a subject for another article, stay tunned
How are you getting the 0.0022 number when calculating the first IOPS of 454? I add average latency and average seek read time, and get a 5.5.
Hi Ahmed. Average Latency (2ms or .002s) + Seek Time Track-to-Track Read (0.2ms or .0002s) = 2.2ms or .0022s
IOPS are per second (s), and often disk time and latency specifications are in miliseconds (ms) which is 1/1,000 of a second (s).
I hope it clarifies the formula…
Cheers,
Didier
N.B. Look at this link http://unit-converter.org/UnitConverter/convert?uc_class=12&uc_value=2.2&uc_sigdigits=5&uc_unit=415&uc_cat=all&commit=Convert
That is a simple and good explanation.
Fundamentals are very much needed in the market place.
All vendors/pre-sales/consultants need a lot of basics to be understood. Appreciate your effort.
I wanted to post here a link to an awesome article from Scott Lowe about the very same subject… Worth a read and bookmark for future reference!
http://blogs.techrepublic.com.com/datacenter/?p=2182