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ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ