I am working through chapter 2 of ISM v2, and I am a little confused about how IOPs and disk utilization are connected.
[I will be using T(s) for T subscript s, etc...]
Starting on page 43, you get T(s) = T + L + X, where T(s) is your disk service time. It's an average time.
Back on page 39, we see that utilization affects the average response time T(r) in a non-linear manner. T(r) = T(s) / (1 - Utilization), "based on the fundamental laws of disk drive performance." However, the specifics of controller utilization are left fuzzy.
On page 40, it states, "it is common to utilize disks below their 70 percent of I/O serving capability." Starting on page 44, the ISM starts to use 70% of total IOPs as the target utilization, therefore defining utilization in terms of IOPs. 100% utilization is the total IOPs available to the drive, 50% utilization is half the total IOPs available to the drive, etc...
So, here is the source of my confusion, using the example starting on page 43.
The disks are capable of 128 IOPs. T(s) is 7.8ms. The typical requirement is to go no further than 70% of the utilization, so we will use 128 x 0.7 = 88 IOPs in our calculations.
However, when you turn around and calculate T(r), it seems to contradict this. As stated, 70% utilization is 88 IOPs. At 70% utilization, T(r) = 7.8 / (1 - .70) = 26ms. However, if my average response time T(r) is 0.026 seconds, then 1/0.026 is approximately 38 IOPs.
How does starting with 88 IOPs give a response time that only allows 38 IOPs?
Likewise, as IOPs approach capacity, average response time approaches infinity. So, I can do 128 I/O operations per second, although each one never finishes? It appears I don't understand a definition somewhere, and I'm guessing it's "utilization." Can somebody please provide some clarity?
The fundamental laws of disk drive performance referred are Little's Law and Utilization Law. We covered these Laws in ISM Book Edition 1. For information on these Laws, please refer ISM Book Edition 1.
Look at the below information for more clarity:
First calculate, the disk service time T(s) = 7.8ms (service time for one I/O)
So, the disk is capable to perform 128 IOPS each of 32K block size at close to 100% utilization.
Response time T(r) is calculated as : T(s) / (1 – Utilization)
From the above formula it is clear : As utilization reaches 1 — that is, as the disk controller saturates — the response time is closer to infinity. Also, from the graph explained in page 39 (Utilization vs. Response time), it is clear the response time increases exponentially when the utilization exceeds 70%.
So, we take 70% disk controller utilization, then the disk is capable to perform 89 IOPS (128 * 0.7) - At lower disk utilization, the number of IOPS a disk can perform is also reduced. So it reduced from 128 IOPS to 89 IOPS.
At 70% utilization , the Response time T (r) = 7.8 / (1- 0.7) = 26 ms, (This gives a Response time for an I/O at 70% disk controller utilization, the response time will vary for different utilization value)
If the utilization reaches 100%, the response time will go infinite, which means unacceptable long response time. (Leads to application time out)
We should not calculate the IOPS from the average response time T(r).
IOPS is calculated by using Disk service time.