Detailed performance statistics for Amazon EC2 instance store volumes
Amazon EC2 provides real-time, high-resolution performance statistics for NVMe instance store volumes attached to Nitro-based Amazon EC2 instances. These statistics are presented as aggregated counters that are retained for the duration of the instance's lifetime. The statistics provide details about the cumulative number of operations, bytes sent and received, time spent on read and write I/O operations, and histograms for read and write I/O operations. While these statistics maintain consistency with Amazon EBS detailed performance statistics, they also include detailed latency histograms broken down by I/O size, which can provide more granular insights into your storage performance patterns. This enhanced visibility enables you to precisely identify which specific I/O sizes are experiencing latency issues, allowing you to optimize application performance and troubleshoot issues more effectively.
You can collect these statistics at a granularity of up to 1 second intervals. If requests are made more frequently than 1 second intervals, the NVMe driver might queue the requests, along with other admin commands, to be processed at a later time.
Considerations
-
The statistics are supported only for NVMe instance store volumes attached to Nitro-based instances.
-
The counters are not persistent across instance stops and restarts.
-
The statistics are available at no additional cost.
Statistics
The NVMe block device vends the following statistics:
Statistic name | Full name | Type | Description |
---|---|---|---|
total_read_ops |
Total read operations | Counter | The total number of completed read operations. |
total_write_ops |
Total write operations | Counter | The total number of completed write operations. |
total_read_bytes |
Total read bytes | Counter | The total number of read bytes transferred. |
total_write_bytes |
Total write bytes | Counter | The total number of write bytes transferred. |
total_read_time |
Total read time | Counter | The total time spent, in microseconds, by all completed read operations. |
total_write_time |
Total write time | Counter | The total time spent, in microseconds, by all completed write operations. |
instance_store_volume_performance_exceeded_iops |
Total time demand exceeded volume provisioned IOPS | Counter | The total time, in microseconds, that IOPS demand exceeded the volume's IOPS maximum performance. |
instance_store_volume_performance_exceeded_tp |
Total time demand exceeded volume provisioned throughput | Counter | The total time, in microseconds, that throughput demand exceeded the volume's maximum throughput performance. |
volume_queue_length |
Volume queue length | Point in time | The number of read and write operations waiting to be completed. |
read_io_latency_histogram |
Read I/O histogram | Histogram * | The number of read operations completed within each latency bin, in microseconds. |
write_io_latency_histogram |
Write I/O histogram | Histogram * | The number of write operations completed within each latency bin, in microseconds. |
Note
* Histogram statistics represent only I/O operations that have completed successfully. Stalled or
impaired I/O operations are not included, but will be evident in the volume_queue_length
statistics, which is presented as a point-in-time statistic.
Accessing the statistics
The statistics must be accessed directly from the instance to which the instance store volumes is attached. You can access the statistics using one of the following methods.