Skip to content

Is a gp3 storage better than the lowest speed io1 storage?

0

Relevant documentation: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html

A few years ago I deployed a Microsoft SQL instance on RDS with a m6i.xlarge instance and a io1 storage set to 1000 IOPS (the lowest available speed). I selected that based on the "For a production application that requires fast and consistent I/O performance, we recommend Provisioned IOPS storage" sentence in the documentation.

Now while my application IS production and cannot afford failure, it is also not that heavy on the resource. more than 98% of the time, I use about 400iops. But about twice per day, I do seem to reach that 1000iops threshold for short duration and I fear this is causing my SQL queries to take a long time. Happen mostly on service restarts or short burst of data entries. I assumed I could just increase the IOPS and be done with it, but the price difference took me by surprise. Doubling to 2000iops is increasing the fees by $200usd.

That's when I noticed that a gp3 storage is triple the speed (3000 iops) AND a much lower cost than what I'm paying now. So any reason not to just switch to that?

2 Answers
1
Accepted Answer

Hello.

I think the following blog post will be helpful.
The workload of your application does not place a heavy load on RDS, so gp3 should work fine.
https://directeam.io/blog/rds-storage-types-which-one-should-i-choose/
https://cloudfix.com/blog/the-shift-from-io1-io2-to-gp3-rds-db-instance-volumes/

Also, according to the AWS blog below, latency may vary depending on the volume type.
https://aws.amazon.com/jp/blogs/storage/how-to-choose-the-best-amazon-ebs-volume-type-for-your-self-managed-database-deployment/

Performance certainly plays a very important role in selecting the most appropriate volume type for your workload. Understanding the characteristics of your workload requirements is critical to ensure your applications function efficiently for your business. According to AWS documentation latency differences between io2 (sub-millisecond) versus gp3 (single digit millisecond) may make a difference in your selection. While you may find that your gp3 volumes can deliver similar IOPS performance to io2 Block Express (as seen in our example above), the difference is that io2 and io2 Block Express deliver consistent sub-millisecond response times which can be key for mission critical workloads.

EXPERT
answered a month ago
AWS
EXPERT
reviewed a month ago
  • Thank you. The goal is to get better performance, not worsen them, but at a reasonable cost. So I do believe gp3 is better suited to my workload. You first article even have a mention "If you don’t need over 64,000 IOPS, don’t use IO1." The latency aspect is interesting, but I doubt the difference between sub-milli to milli will have as much impact as the main iops/throughput values.

-1

Based on your description, switching from io1 with 1000 IOPS to gp3 would likely be beneficial for your workload.

Amazon EBS gp3 volumes provide a baseline performance of 3,000 IOPS and 125 MiB/s throughput regardless of volume size, which is higher than your current io1 configuration at 1000 IOPS. Since your workload typically uses around 400 IOPS and only occasionally reaches the 1000 IOPS threshold, gp3's 3,000 IOPS baseline would comfortably handle your performance needs, including those short bursts that are currently hitting your limits.

From a cost perspective, gp3 volumes offer significant savings compared to io1 volumes. You can save up to 87% by choosing gp3 over io1/io2 volumes for workloads requiring less than 16,000 IOPS and 500 MiBps throughput, which your workload falls well within.

While io1/io2 volumes have traditionally been recommended for production workloads requiring consistent performance, gp3 volumes now offer excellent performance characteristics that are suitable for many production workloads. They provide single-digit millisecond latency and 99.8% to 99.9% volume durability.

If your application ever grows to need more performance, gp3 volumes allow you to scale IOPS (up to 16,000 for RDS) and throughput independently of storage size, giving you flexibility for future growth.

The only scenario where you might want to stay with io1 or consider io2 Block Express would be if your application absolutely requires sub-millisecond latency or the highest possible durability (99.999%). However, based on your description, gp3 should meet your performance needs while providing significant cost savings.
Sources
Capture and diagnose I/O bottlenecks on Amazon RDS for SQL Server | AWS Database Blog
Amazon EBS General Purpose SSD volumes - Amazon EBS
Maximizing Storage Performance and Savings with Amazon EBS gp3 and Ollion | AWS Partner Network (APN) Blog
Optimize storage for SQL Server - AWS Prescriptive Guidance
Optimize Amazon RDS performance with io2 Block Express storage for production workloads | AWS Database Blog

answered a month ago
AWS
EXPERT
reviewed a month ago
  • While this answer look good, I do not trust generative AI. By experience it only answers everything in a way that will twist to agree with the way the question was asked to make the user happy about themselves. I would like an opinion from a real human with knowledge in the matter.

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.