So I've started to dig into storage fundamentals and found that in order to calculate the IOPS of a HDD you need to know the internal transfer rate of the drive (time it takes data to move from the platters to internal disk's cache).
I went on newegg and even a few vendor sites and could not find this info published for any HDDs. Is it sometimes called something else? Take this link to a seagate HDD for instance. Nowhere do I see "internal transfer rate", but I do see something called "Sustained Data Rate OD"- is that the same thing?
Just so you know I'm getting this info from the EMC Book: "Information Storage and Management Storing, Managing...":
"Consider an example with the following specifications provided for a disk:
The average seek time is 5 ms in a random I/O environment; therefore,
T = 5 ms.
Disk rotation speed of 15,000 revolutions per minute or 250 revolutions per
second — from which rotational latency (L) can be determined, which is
one-half of the time taken for a full rotation or L = (0.5/250 rps expressed
40 MB/s internal data transfer rate, from which the internal transfer time
(X) is derived based on the block size of the I/O — for example, an I/O
with a block size of 32 KB; therefore X = 32 KB/40 MB.
Consequently, the time taken by the I/O controller to serve an I/O of block
size 32 KB is (TS) = 5 ms + (0.5/250) + 32 KB/40 MB = 7.8 ms.
Therefore, the maximum number of I/Os serviced per second or IOPS is
(1/TS) = 1/(7.8 × 10^-3) = 128 IOPS."
I have another question too about the how the internal data transfer rate is calculated with the block size. Why do you divide 32 by 40 (which is .8)? What is .8? Its not like your converting them to a common denominator like bytes so what does .8 represent?
Solved! Go to Solution.
Forget the details of the example calculation.
It is merely there to illustrate why a disk with a higher RPM can deliver more IOPS and the relationship between block size and IOPS.
It basically says that on the lowest level there are 3 parts to do until you can get a data block and they are determined by physics:
1. you need to position the r/w head - on average 5 ms
2. on average your r/w head is on the other side where the data block is - wait half a spin
3. once you are at the start of the block you read it with the data tranfer rate for that track
real hard drive have the same density on all of its tracks - so since the outer tracks hold much more data than the inner tracks their internal hard drive transfer rate is much higher than for the inner tracks.
For one modern disk for example it is 90 MB/s for the inner tracks but 170 MB/s for the outer tracks.
And even these are just the measured numbers actually reading from the outside.
The true internal data transfer rates you wont find outside of NDA specs or HDD design documents.
Then there is caching, read-ahead, ....
bottom line - for performance calculations and sizing use the rule-of-thumb IOPS numbers that are provided in the best practices and performance fundamentals documents.
So I should just rely on the IOPS the vendors say a drive delivers? How do I calculate the IOPS for different block sizes with different applications or file systems (ones that there might not be a best practices doc specifically written for) if the vendor doesn't provide the internal transfer rate?
Also, how do I calculate the response time if I don't know the internal transfer rate which according to the book is: (Tr) = Service time (Ts) / (1 – Utilization)
Also, why does 32kb / 40mbs work out to .8 when there is no conversion to a common denominator?