How to Calculate IOPS Performance
Let’s understand how to calculate iops performance for General Purpose. It says 3 IOPS/GB which means if i take 100GB disk i will get 3*100=300 IOPS as baseline performance. But there is a catch here he also says brust of 3000 IOPS.Means when you server has more io to do it can increase 3K IOPS.
Each volume receives an initial I/O credit balance of 5.4 million I/O credits, which is enough to sustain the maximum burst performance of 3,000 IOPS for 30 minutes.
For example, a 100 GiB gp2 volume has a baseline performance of 300 IOPS.When your volume requires more than the baseline performance I/O level, it draws on I/O credits in the credit balance to burst to the required performance level, up to a maximum of 3,000 IOPS.
Volumes larger than 1,000 GiB have a baseline performance that is equal or greater than the maximum burst performance, and their I/O credit balance never depletes. When your volume uses fewer I/O credits than it earns in a second, unused I/O credits are added to the I/O credit balance.
I/O Credits and Burst Performance
The performance of gp2 volumes is tied to volume size, which determines the baseline performance level of the volume and how quickly it accumulates I/O credits; larger volumes have higher baseline performance levels and accumulate I/O credits faster. I/O credits represent the available bandwidth that your gp2 volume can use to burst large amounts of I/O when more than the baseline performance is needed. The more credits your volume has for I/O, the more time it can burst beyond its baseline performance level and the better it performs when more performance is needed. Below example will be more clear.
Let’sdo some calculations and understand how much brust I can get ?
Say we have 1GB Volume and we get 3 IOPS per 1GB so we have 3*1=3
Max brust for GP1 is 3000 IOPS and for 1GB and using IO credit it will be 3000–3=2997 IOPS
Say we have 200GB Volume and we get 3 IOPS per 1GB so we have 3*200=600
Max brust for GP1 is 3000 IOPS.
Using IO credit it will be 3000–600=2400 IOPS
If we need to get 10000 IOPS how much disk I should have ?
We need 3333GB disk. ie 3*3333=9999GB
EBS Volumes are persistent block level storage. All storage volumes are immediately allocated however when we access first time EBS volumes either created new volume or initiated restore from snapshot it will have a loss of 10%–50% IOPS. Credits will be taken from initial allocation of 5.4 million credits.Also there will be performance hit for first time access of EBS volumes and might impact be bad user experience. To avoid this we need to perform Pre-Warming of EBS Volumes.