How do I troubleshoot EBS volume performance issues on my EC2 instance?

3 minute read

I want to troubleshoot my Amazon Elastic Block Store (Amazon EBS) volume’s performance on my Amazon Elastic Compute Cloud (Amazon EC2) instance.

Short description

The following are performance issues you might encounter on your EBS volume:

  • Slow application performance
  • Slow instance performance
  • High data access times
  • Read and write errors
  • Disk not accessible or reporting as offline
  • High disk input/output operations (IOPS), queue length, throughput, and latency
  • Outdated drivers

Note: For best practices to achieve optimal volume performance, see the following:


Step 1: Determine when performance issues occur

Determine the time frame when performance issues occur. Then, you can isolate that time period of EBS metrics to review in later troubleshooting steps. For example, performance might slow during peak business hours.

Step 2: Review EBS volume status checks

  1. Open the Amazon EC2 console.
  2. Select Volume. Note that the Volume status column displays the status of each volume.
  3. Choose the volume and then select the Status checks tab.
  4. If the volume is in an impaired status, then see Work with an impaired volume.

For more information, see Monitor the status of your volumes.

Step 3: Gather volume and instance information

Collect information about the volume, such as volume type, volume size, IOPS, and throughput limits. For more information, see the following:

Step 4: Gather CloudWatch metrics

Review the Amazon CloudWatch metrics for Amazon EBS. Note any spikes in the graphs. The following are the average performance calculations:

  • Average IOPS = (Read operations (Ops/s) + Write operations (Ops/s))/ Period (in seconds)
  • Average Throughput = (Read throughput (KiB/s) + Write throughput (KiB/s))/ Period (in seconds)
  • Average queue length (Operations)
  • Latency = (Average read latency (ms/op) + Average write latency (ms/op))/Period (in seconds)
  • Average IO size = (Average read size (KiB/op) + Average write size (KiB/op))/ period (in seconds)

For more information, see Monitor I/O characteristics using CloudWatch.

Step 5: Review metrics against the instance and volume attributes

Review the CloudWatch metrics and compare them to the volume and instance information collected in step 3. Isolate the issue to the following categories:

Note: EBS volume type and EC2 instance type changes incur costs. Be sure to understand the pricing differences before making changes. For more information, see the following:

Note: The CloudWatch metrics might make it appear that the volume or instance limits aren't being reached, even though performance is slow. If this occurs, determine if microbursting is occurring on the instance.

Step 6: Note service-level events

If you suspect that a major event occurred for the Amazon EBS service or volume during the time frame that you're researching, then check your AWS Health Dashboard for events.

Related information

Benchmark EBS volumes

Monitoring and understanding Amazon EBS performance using Amazon CloudWatch

How do I optimize the performance of my Amazon EBS Provisioned IOPS volumes?

AWS OFFICIALUpdated a year ago