RDS Instance unavailable - EBSByteBalance

0

Hi, I have the following RDS instance:

db.t4g.micro Storage 400 GiB Provisioned IOPS 12000 IOPS Storage throughput 500 MiBps

It has been running low (0) on EBSByteBalance% which makes the instance to become unavailable, triggering a RDS failover. That makes my websites down for a few minutes.

Enter image description here

Enter image description here

All the other charts in the monitoring tab look fine.

Reading this post: https://repost.aws/questions/QU-tOmM-EESWW00CKa3QSkmA/rds-instance-running-out-of-ebs-byte-balance

I understand that the EBSByteBalance% is related to the instance it self and that I need to upgrade to a new instance type.

In this post:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html#current

Says:

"You can use the EBSIOBalance% and EBSByteBalance% metrics to help you determine whether your instances are sized correctly. You can view these metrics in the CloudWatch console and set an alarm that is triggered based on a threshold you specify. These metrics are expressed as a percentage. Instances with a consistently low balance percentage are candidates to size up. Instances where the balance percentage never drops below 100% are candidates for downsizing."

The questions; which instance type should I look for? is there any downtime when changing the DB instance type? I need my Database to be able to run without interruptions. I also would not like to pay $300K/month on a DB instance.

Thanks.

Saul
asked 4 months ago325 views
1 Answer
0

Hello.

The bottleneck seems to be in the RDS disk, so it may be a good idea to change the EBS specs instead of changing the instance type.
https://repost.aws/knowledge-center/rds-latency-ebs-iops-bottleneck

Using the GP3 volume type among general-purpose SSDs may help alleviate bottlenecks.
Unlike GP2, with GP3, IOPs and throughput can be controlled by the user.
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#Concepts.Storage.GeneralSSD

Changing the RDS instance type or storage will result in downtime.
To alleviate this, you need a multi-AZ configuration.
https://repost.aws/knowledge-center/rds-mysql-downtime-impact

profile picture
EXPERT
answered 4 months ago
  • Hi, thanks for your answer.

    I'm already using a gp3 storage. This are my current instance specs:

    Instance class

    db.t4g.micro

    vCPU 2

    RAM 1 GB

    Multi-AZ Yes

    Storage type

    General Purpose SSD (gp3)

    Storage 400 GiB

    Provisioned IOPS 12000 IOPS

    Storage throughput 500 MiBps

    Storage autoscaling Enabled

    Maximum storage threshold 450 GiB

    If, for example, I upgrade to a db.m7g.large instance class will it still have this EBSByteBalance?

  • I think changing the instance type may lead to an improvement, as stated in the documentation I shared. https://repost.aws/knowledge-center/rds-latency-ebs-iops-bottleneck

    If you're using an EBS-optimized RDS instance class, then use the CloudWatch graphs to check for throttling of IOPS or throughput. For instance classes with burst capacity, view the EBSIOBalance% and EBSByteBalance% metrics in the CloudWatch graphs. Consistently low values of EBSIOBalance% or EBSByteBalance% indicate an IOPS or throughput bottleneck at the instance level.

    db.m7g.large has higher throughput and IOPS than db.t4g.micro, so I think it may lead to improvement. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html#current

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions