Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does AWS RDS still shows burst balance 0 with disk size 2TB gp2?

According to what I know about gp2 from AWS docs (link), gp2 disks have burst capabilily when they are smaller than 1000GB. After disk is bigger 1000GB, baseline performance exceeeds 3000 IOPS burst performance, so that "burst" term cannot apply.

However, as I see on my current prod database with 2TB gp2 storage, burst balance still somehow apply to me, and storage is considerably faster while burst balance is more than 0.

Apparently, there are changes in AWS Burst term. Does anybody knows modern terms, so I can plan my hardware accordingly?

burst balance metrics metrics

like image 891
snowindy Avatar asked Dec 11 '20 08:12

snowindy


People also ask

What is GP2 burst balance?

The burst balance relates to disk usage on your RDS instance. This assume you're using a GP2 volume which is bustable (it has credits that can be depleted too). Just like burstable instance classes ( T2 / T3 ) GP2 has a balance of available credits in which its IOPs can reach upto 3000 PIOPs.

How do you increase burst balance in RDS?

Increase the storage capacity only after all other tuning options are verified. Scale up your storage class to improve performance or change the storage type from gp2 to io1 and assign the required IOPS. Specify the amount of storage that you want to allocate. Then, specify the amount of dedicated IOPS that you want.

How do I check my AWS burst balance?

You can use CloudWatch to monitor the Burst Balance percentage, and also set up an alert if it gets low. To view the Burst Balance percentage, one way is to click on the Volume in the AWS console, then go to the Monitoring tab.

What is the maximum size of the DB instance is associated storage capacity?

You can create SQL Server RDS DB instances with up to 16 TiB of storage.


2 Answers

I made request to AWS support about this. It was a lengthy thread where I got to know several important facts. I have saved my conversation at this link, so it's not lost for community.

Answer: burts balance may still apply for storage bigger than 1TB, because there may be several volumes to serve storage space. If volume is smaller than 1TB - burst balance gets utilized for that volume.

Other facts that were obscure for me:

  • database may look like it's capped by IOPS limits (due internal IOPS submerge operation), but in reality it may be capped by network throughput.
  • network throughput is gueranteed by EBS-Optimized. At RDS docs you won't find explicit tables how instances relate to throughput, but it's there on EBS docs
  • For some of the instances that are nitro-based, EBS-Optimized allows to work at maximum throughput for class for 30 minutes each 24 hours. For smaller instances it means that for 30 minutes database may go skyrocket performance, comprared to poor baseline.
like image 177
snowindy Avatar answered Oct 16 '22 04:10

snowindy


I've run into that issue with EFS, provisioning enough capacity (storage and throughput) is one thing, provisioning burst capacity is something else. In this case it appears that you are running into the same issue. Exceeding your burst capacity. If you have a read-heavy application, consider using a replica or a caching scheme. Alternatively you can increase your 2TB disk to 4TB or look into provisioned iops solution.

like image 31
Michael Quale Avatar answered Oct 16 '22 04:10

Michael Quale