AWS gp3 Decouple IOPs from Disk Size
With AWS EBS gp3 volumes, IOPs and throughput can be provisioned separately from EBS storage size. While Atlas now uses gp3 volumes and provides a base throughput of 3,000 IOPs, higher throughputs are still directly tied to disk size.
We run IO-intensive workloads that require high throughput, and we have to severely over-size disks to get the needed throughput. We don't require the extra-low latency of provisioned IOPs (which is much more expensive than over-provisioning storage).
According to the linked AWS documentation below, if the M60 instance size is running on an ec2 m5.4xlarge instance type, it can support a max EBS bandwidth of 593.75MB/s and 18,750 IOPs. M5.8xlarge can support 800MB/s and 30,000 IOPs. Newer generations support even higher levels. Individual EBS volumes can support up to 1,000 MB/s and 16,000 IOPs each.
Information on AWS EBS can be found at https://aws.amazon.com/ebs/general-purpose/
Details of EBS throughput by instance type can be found at https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html
-
Travis commented
It's not just a problem where we have to over provision disk space, it's also a waste of money. Using AWS as the example, fees for provisioned IOPS (yes, I know they're not gp3) are significantly more expensive than going with gp3 with scaled up IOPS.
Is io1/io2 the same as gp3? Of course not, but let me decide which I want to use. I would be more than happy with a 500GB gp3 volume set to 10,000 IOPS. It's a great sweet spot of performance and cost.