We run a Multi-AZ r4.2xlarge Mysql RDS instance and we provision 2000 IOPS (which costs $400 per month extra). When I check the CloudWatch charts I can see large periods where the Write IOPS
are more than the 2000 that we pay for:
(during weekdays UK working hours the IOPS are higher than 2000)
There's also Read IOPS
occurring on top of this which also count towards the Provisioned limit according to the documentation:
Total IOPS is the sum of the read and write IOPS. Typical values for IOPS range from zero to tens of thousands per second.
Is there an explanation for why I get more IOPS than I provisioned?
Things I considered:
- Maybe AWS allow IOPS bursting even for RDS instances with Provisioned IOPS? I think not because I don't see the
BurstBalance
metric in Cloudwatch for my instance like I do for non-provisioned IOPS RDS instances. - Maybe AWS add additional IOPS credits depending on how big a disk the RDS has? We have a 500G disk which would give 1500 IOPS baseline performance if we were using General Purpose SSD. I don't see this mentioned in the docs though.
- Maybe AWS limit your IOPS based on a average over 24 hours rather than a hard limit?