One of the most common performance metrics used in storage design is IOPS, but isn't iops enough to help us make design decisions? There are many misunderstandings in this area. In the vast majority of cases it is meaningless to think only of IOPS alone. This article takes you through a case study to fully consider all aspects that affect storage performance.
Because there are so many factors affecting storage performance, and different storage products have different characteristics and processing methods, for the sake of simplification, this article does not discuss Write/read ratio,sequential/random, RAID Penalty,cache,dedupe, auto-tiering,partition alignment and other factors.
Measurement indicators:
Throughput
The amount of data transmitted over a unit of time. Often measured in Kbps or Mbps.
Latency (response time)
Refers to the time required to complete an IO request. Often measured by milliseconds.
IOPS
Input-output per Second. Measure how much read and write operations are completed in one second.
The relationship between latency and IOPS
IOPS = 1000/(Seek latency+ rotational latency)
The above formula is only calculated in the case of a single disk. This certainly does not reflect the real environment. But help us understand the relationship. The data in the image below is very old, just to show that different types of disk support ioPS are different.
Rpm |
IOPS |
Ssds |
6000 |
15K |
175 |
10K |
125 |
7200 |
75 |
5400 |
50 |
The above is the most simplified situation, did not consider Write/read Ratio,raid Penalty,cache and other factors.
So in the case of using a commercial storage array, can we say that the higher the IOPS, the lower the latency? This conclusion cannot be simply concluded.
ioPS and latency are not simple linear relationships, where IOPS is less than a number (such as 3000), the higher the IOPS, the lower the latency may be. Once the critical point is exceeded, such as IOPS at 4000, latency may be 3 times times the IOPS at 3000! This critical point depends on the array used.
Don't get too excited when you see an array of data that supports million IOPS. Maybe when the array handles so many iops, latency will be up to ms!. If your application requires a high latency, such as a real-time transaction of the credit card system, a latency greater than 4ms is enough to make the transaction fail.
The relationship between Block Size,throughput and IOPS
One problem that virtualization architects often consider is how much bandwidth is required for front-end interface cards (hba,iscsinic)? Can background storage be able to handle projected IOPS?
Assuming there is a bucket, the volume of the barrel is certain. Can accommodate a lot of balls, but only a few big ball.
The volume of the ball here refers to an operational blocksize.