How can I use CloudWatch metrics to calculate the average throughput and average number of IOPS my EBS volume is providing?
Last updated: 2020-02-03
I want to calculate the average throughput and number of IOPS for my Amazon Elastic Block Store (Amazon EBS) volume. How do I use Amazon CloudWatch (CloudWatch) metrics to do this?
You can use CloudWatch to monitor the status of your EBS volumes. Then, you can use this data to determine the average number of IOPS provided and the average throughput of your volume.
The average number of IOPS that an EBS volume provides is calculated by adding the CloudWatch metrics for VolumeReadOps and VolumeWriteOps.
The average throughput of an EBS volume on an instance is calculated by adding the CloudWatch metrics for VolumeReadBytes and VolumeWriteBytes.
- Open the CloudWatch console.
- Select Metrics.
- Select EBS, and then select Per volume metrics.
- Select the metrics you want to graph.
- Choose the Graphed metrics tab.
- Select Average from the Statistic drop-down menu.
- Select the period of time you want to view from the Period drop down menu.
Note: For EBS volumes attached on Xen-based instances, the Average metric from VolumeReadBytes and VolumeWriteBytes CloudWatch graphs shows the Average read and write I/O size for the selected time period.
For EBS volumes attached on Nitro-based instances, the Average metric in VolumeReadBytes and VolumeWriteBytes shows average bandwidth (in Bytes) for the selected time period. To calculate I/O size for EBS volumes attached to Nitro-based instances, refer to How does EBS calculate the optimal I/O size I should use for my gp2 or io1 volume to increase throughput?