- Newest
- Most votes
- Most comments
Hello, JasonM.
40kps 30 min at least once in any 24-hour period: In the case of RDS, this likely means that your RDS instance can sustain a burst of up to 40,000 IOPS for 30 minutes at a time, but it can only do this once within any 24-hour period. This is a burstable performance characteristic that allows you to exceed the baseline performance of your RDS instance for short periods when needed. Also, this article can help you for the best understanding what is rds burst for storage https://aws.amazon.com/blogs/database/understanding-burst-vs-baseline-performance-with-amazon-rds-and-gp2/
What happens if consuming 38k IOPS?: If you are consuming 38,000 IOPS on your RDS instance and the limit is 40,000 IOPS, you are within the allowable burstable limit, and your RDS instance should be able to sustain this level of IOPS usage. If you exceed the burstable limit for an extended period, you may experience reduced performance or incur additional charges.
Best regards, Andrii
The concept of having a baseline IOPS and a maximum burst IOPS in Amazon RDS (and similar cloud services) is designed to strike a balance between providing consistent performance and allowing for occasional bursts of higher performance when needed, while also managing resource allocation efficiently. Here's why these two levels exist:
Cost-Efficiency: Setting a baseline IOPS level allows AWS to offer cost-effective pricing for RDS instances. If every RDS instance had its maximum IOPS as the baseline, it would be more expensive for users, as they would essentially be paying for peak performance all the time, even if they don't use it. By having a lower baseline, AWS can offer more affordable options to customers.
Fair Resource Allocation: By providing a baseline performance level, AWS ensures fair resource allocation among users. If everyone could use their maximum IOPS all the time, it could lead to resource contention and unpredictable performance for everyone sharing the underlying hardware. Baseline IOPS helps maintain a minimum level of guaranteed performance.
Burst Capability: Bursting beyond the baseline for short periods allows instances to handle occasional spikes in workloads without the need to provision higher-tier, more expensive instances. This burst capability is valuable for handling sudden increases in traffic or processing demands.
Andrii is correct, your workload will run above 12k IOPS for part of the day until you consume all of your burst for that day, then the m6i.2xlarge will only provide Baseline IOPS until the next period. In this case that number is 12k.
$ aws ec2 describe-instance-types --instance-types m6i.2xlarge --query "InstanceTypes[*].[InstanceType, EbsInfo.EbsOptimizedSupport, EbsInfo.EbsOptimizedInfo]"
[
[
"m6i.2xlarge",
{
"BaselineIops": 12000,
"MaximumIops": 40000
}
]
]
Relevant content
- asked 3 years ago
- Accepted Answerasked 3 years ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 21 days ago
Thanks @Andrii, I think that's what it means.
But why then do we bother having a baseline and a max? Why isn't baseline just the same as max? if we can sustain 38k IOPS indefinitely then why not just make baseline 40k IOPS.
That's the part that I can't quite understand :)