Resolving AWS EBS I/O Bottleneck Issues

amazon ec2awsperformancesql server

I'm hoping someone can help me understand some EBS Bottlenecks that we are experiencing with a new Windows SQL Server instance we're configuring. We're running some tests by conducting a full backup so we can see how the I/O performs. However, the backup causes I/O blocking issues.

Its an r3.4xlarge instance which should have 250MB/s throughput and we've set up EBS with 7500 IOPs

However, we're only ever achieving a maximum of the following according to Cloudwatch:

Read Bandwidth: 140,486 KiB/s
Write Bandwidth: 22,448 KiB/s
TOTAL: 162934 KiB/s or 166 MB/s

Read Ops: 3468 OPS/s
Write Ops: 592 OPS/s
TOTAL: 4060 OPS/s

We cant understand why we're never achieving maximum IOPs or maximum throughput. Where else could it be bottlenecking?

Best Answer

We have had this answer back from AWS Support which shows where the bottleneck is occurring:

If you would like to reach 250MB/s, the maximum throughput of r3.4xlarge, you can change the volume to Provisioned IOPS(io1). IO1 has maximum throughput of 320 MiB/s. Another approach is to build RAID 0 array with 2 gp2 EBS volume. You can see the guidance from link [2].