I want to be sure my Amazon EBS Provisioned IOPS volume(s) deliver expected levels of input/output performance on a consistent basis. How can I do this?

Amazon EBS volume types include General Purpose (SSD) volumes, Provisioned IOPS (SSD) volumes, and Magnetic volumes. Provisioned IOPS (SSD) volumes can deliver up to 20,000 IOPS and are well suited for critical business applications and large database workloads that demand consistently high levels of random access I/O performance. The performance of Provisioned IOPS (SSD) volumes depends on several factors.

To improve the performance for your Provisioned IOPS (SSD) volume, follow these recommendations:

  • When you create a new Provisioned IOPS (SSD) EBS volume or restore one from a snapshot, pre-warm the volume. Pre-warming eliminates the performance penalty that is incurred the first time you access newly allocated blocks of storage. The newly allocated block of storage must either be wiped clean or restored from its snapshot (for restored volumes) before you can access the block. This is a time-consuming process and can cause up to a 50% loss of IOPS the first time the volume is accessed. For more information, see Pre-Warming Amazon EBS Volumes.
  • Be sure that the workload demand on the volume matches the IOPS that you have provisioned. Also verify that per-request I/O latency is not a limiting factor for workload demand. If I/O latency is high, check the average queue length to be sure that your application is not trying to drive more IOPS than you have provisioned. In this case, you might consider using a Provisioned IOPS (SSD) volume with more provisioned IOPS.
  • I/O Characteristics – the size of I/O operations affects IOPS. For example, if your I/O chunks are very large, you might get fewer IOPS than you provisioned because of the 320 MiB/s per volume throughput limit. For more information, see Provisioned IOPS SSD (io1) Volumes. If your I/O chunks are consistently large, consider joining multiple Provisioned IOPS (SSD) volumes together in a RAID 0 configuration to increase available throughput. For more information, see RAID Configuration on Linux.
  • When possible, schedule EBS snapshots during off-peak times. EBS snapshots provide enhanced data durability, but they might slightly degrade your application’s performance when the snapshot is in progress. For more information, see Amazon EBS Snapshots.
  • Use Amazon CloudWatch to analyze and view EBS performance metrics, and view status checks to monitor the health of your volumes. Volumes should maintain an average queue length of one per minute (rounded up to the nearest whole number) for every 200 provisioned IOPS. Use the CloudWatch metric ‘volumequeuelength’ to determine average queue length. For more detailed information, see Monitoring Volumes with CloudWatch.
  • Follow AWS Trusted Advisor performance best practices and run the Amazon EBS Provisioned IOPS (SSD) Volume Attachment Configuration check to find Provisioned IOPS (SSD) volumes that are attached to an EC2 instance that is not EBS-optimized. Provisioned IOPS volumes are designed to deliver expected performance only when they are attached to an EBS-optimized instance. Be sure that the chosen EBS-optimized instance type supports enough IOPS for all of the EBS volumes attached. For more information, see Amazon EBS–Optimized Instances.
  • Consider testing the performance of your Provisioned IOPS (SSD) volume by simulating workloads similar to your application. For detailed information, see Benchmark Volumes.

Did this page help you? Yes | No

Back to the AWS Support Knowledge Center

Need help? Visit the AWS Support Center.

Published: 2015-03-31

Updated: 2017-06-26