RDS IOPS limitations

0

We have a problem with the performance of PostgreSQL RDS instance running on gp3 storage. As you can see from the attached diagrams, in an recent incident it exhausted EBSIOBalance% while the number of IOPS never exceeded approx 18k, although we have provisioned 25k IOPS for this instance. This resulted in a steep surge of a number of active connections/sessions and exhausted freeable memory within minutes, leading to a system crash. It is not clear to us why it used burst IOPS without exceeding baseline IOPS. On the other hand, we now see that documentation states that gp3 storage can have max. 16k IOPS/volume. Could you please explain what is happening and why we are able to provision and pay more IOPS if they cannot actually be used?

Additionally, we are considering increasing the size of our RDS instance from m5.2xlarge to m5.4xlarge in order for us to be able to fully use IOPS that we have provisioned. There are some resources on AWS Docs indicating that our current RDS instance type (m5.2xlarge) supports maximum of 18750 IOPS for 30 minutes at least once every 24 hours (which is extremely misleading since the system allowed us to provision 25k IOPS without any disclaimer indicating that we'll not be able to reach that due to other limitations) but we do not see such limitation for m5.4xlarge. Can you confirm for us that if we switch to the larger instance we will be able to fully utilize all provisioned IOPS we have configured on our GP3 storage attached to RDS instance.

Are there other instance types that may suit our needs better than m5?

EBSIOBalance% / IOPS

1 回答
0

EBSIOBalance% is a measure of the Burst IOPS consumed on the ec2 instance, not the gp3 volumes. You should not let the EBS IOPS exceed the max for the instance type. It looks like your workload requires more than the baseline of 12k so a 4xl might be a better choice. If you need actually 25k then 8xl will work.

$ aws ec2 describe-instance-types --instance-types m5.2xlarge m5.4xlarge  m5.8xlarge  --query "InstanceTypes[*].[InstanceType, EbsInfo.EbsOptimizedSupport, EbsInfo.EbsOptimizedInfo]"
[
    [
        "m5.4xlarge",
        {
            "BaselineIops": 18750,
            "MaximumIops": 18750
        }
    ],
    [
        "m5.2xlarge",
        {
            "BaselineIops": 12000,
            "MaximumIops": 18750
        }
    ]
    [
        "m5.8xlarge",
        {
            "BaselineIops": 30000,
            "MaximumIops": 30000
        }
    ]
]
AWS
审核人员
philaws
已回答 8 个月前
profile pictureAWS
专家
已审核 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则