I want my Amazon Elastic Block Store (Amazon EBS) Provisioned IOPS SSD volumes to deliver optimal levels of input and output performance on a consistent basis.
Resolution
To improve the performance of your Provisioned IOPS SSD volumes, take the following actions:
Check your volume type's performance specifications
Identify the burstable performance and maximum provisioned throughput for your volume size. For more information, see Amazon EBS volume types.
Initialize your restored Amazon EBS volumes
New Amazon EBS volumes don't require initialization or pre-warming. However, you must initialize volumes restored from snapshots before you access their storage blocks. Run the fio or dd command to initialize a snapshot-restored volume. Use fio for faster performance because it allows multi-threaded reads.
Match workload demand to provisioned IOPS
Take the following actions:
- Confirm that your workload demand doesn't exceed the IOPS that you provision.
- If I/O latency is high, then check the average queue length to confirm your application isn't driving more IOPS than provisioned.
- If IOPS demand exceeds your provisioned amount and the application is latency sensitive, then increase the Provisioned IOPS on your volume.
For more information, see Amazon EBS-optimized instance types and Amazon EBS I/O characteristics and monitoring.
Check your I/O operation size
Large I/O operations can reduce your effective IOPS because of the per-volume throughput limit. To identify whether I/O size affects your performance, see Amazon EBS I/O characteristics and monitoring and Provisioned IOPS SSD (io1) volumes. If your I/O size is consistently large, then join multiple Provisioned IOPS SSD volumes in a RAID 0 configuration to increase throughput. For more information, see Amazon EBS and RAID configuration.
Optimize Amazon EBS snapshot frequency and retention
Optimize your snapshot frequency and retention settings so that you don't incur unnecessary Amazon EBS snapshot charges. For more information, see Create Amazon Data Lifecycle Manager custom policy for EBS snapshots.
Monitor Amazon EBS performance with CloudWatch metrics
Check the Amazon CloudWatch console for status checks on your volume health. Volumes must maintain an average queue length of one per minute, rounded to the nearest whole number, for every 1,000 provisioned IOPS. Use the VolumeQueueLength metric to determine average queue length. For more information, see Amazon CloudWatch Metrics for Amazon EBS.
Run the Trusted Advisor volume attachment check
Run the Amazon EBS Provisioned IOPS (SSD) Volume Attachment Configuration check to identify volumes attached to instances that aren't optimized for Amazon EBS.
Provisioned IOPS volumes deliver expected performance only when attached to instances optimized for Amazon EBS. Confirm that your Amazon EBS-optimized instance types support enough IOPS and throughput for all attached volumes.
Note: You must have an AWS Business Support+, AWS Enterprise Support, or AWS Unified Operations plan to run the check.
Benchmark your Provisioned IOPS SSD volume
Simulate workloads similar to your application to validate expected performance. For more information, see Benchmark Amazon EBS volumes.