

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon EBS 详细性能统计数据
<a name="nvme-detailed-performance-stats"></a>

Amazon EBS NVMe 块设备为连接到基于 Nitro 的 Amazon EC2 实例的 Amazon EBS 卷提供实时、高分辨率的 I/O 性能统计信息。这些统计数据以聚合计数器的形式显示，并在卷附加到实例期间保留。统计数据提供有关累积操作数、发送和接收的字节数以及读取和写入 I/O 操作所花费的时间。此外，统计数据还包括读取和写入 I/O 操作的直方图，以及您的应用程序超过 EBS 卷或附加实例的预调配 IOPS 或吞吐量限制的总时间。

您可以按最高 1 秒的间隔收集这些统计数据。如果发出请求的频率超过 1 秒的间隔，NVMe 驱动程序可能会将这些请求与其他管理命令一起排队，以便稍后处理。

**注意事项**
+ 统计数据支持所有 Amazon EBS 卷类型。
+ 统计数据仅支持[附加到基于 Amazon Nitro 系统构建的实例](https://docs.amazonaws.cn/ec2/latest/instancetypes/ec2-nitro-instances.html)的卷。
+ 统计数据适用于启用了多重附加的卷。在查看启用了多重附加的卷的统计数据时，这些统计数据特定于该实例附加，并且仅反映该实例的使用情况。
+ 这些统计数据无需额外费用即可使用。

## 统计数据
<a name="nvme-stats"></a>

Amazon EBS NVMe 块设备提供以下统计数据：


| 统计数据名称 | 全名 | 类型 | 描述 | 
| --- | --- | --- | --- | 
| total\_read\_ops | 总读取操作数 | 计数器 | 已完成的读取操作总数。 | 
| total\_write\_ops | 总写入操作数 | 计数器 | 已完成的写入操作总数。 | 
| total\_read\_bytes | 总读取字节数 | 计数器 | 传输的读取字节总数。 | 
| total\_write\_bytes | 总写入字节数 | 计数器 | 传输的写入字节总数。 | 
| total\_read\_time | 总读取时间 | 计数器 | 所有已完成读取操作的总耗时（单位：微秒）。 | 
| total\_write\_time | 总写入时间 | 计数器 | 所有已完成写入操作的总耗时（单位：微秒）。 | 
| ebs\_volume\_performance\_exceeded\_iops | 总时间需求超过卷的预调配 IOPS | 计数器 | IOPS 需求超出存储卷预调配 IOPS 性能的总时长（单位：微秒）。 | 
| ebs\_volume\_performance\_exceeded\_tp | 总时间需求超过卷的预调配吞吐量 | 计数器 | 吞吐量需求超出存储卷预配置吞吐量性能的总时长（单位：微秒）。 | 
| ec2\_instance\_ebs\_performance\_exceeded\_iops | 总时间需求超过 EC2 实例的 IOPS 性能 | 计数器 | EBS 卷超出所附加的 Amazon EC2 实例最大 IOPS 性能的总时长（单位：微秒）。 | 
| ec2\_instance\_ebs\_performance\_exceeded\_tp | 总时间需求超过 EC2 实例的 IOPS 吞吐量 | 计数器 | EBS 卷超出所附加的 Amazon EC2 实例最大吞吐量性能的总时长（单位：微秒）。 | 
| volume\_queue\_length | 卷队列长度 | 时间点 | 待完成的读取与写入操作的数量。 | 
| read\_io\_latency\_histogram | 读取 I/O 直方图 | 直方图\* | 每个延迟区间内完成的读取操作数（单位：微秒）。 | 
| write\_io\_latency\_histogram | 写入 I/O 直方图 | 直方图\* | 每个延迟区间内完成的写入操作数（单位：微秒）。 | 

**注意**  
\* 直方图统计数据仅表示成功完成的 I/O 操作数。停滞或受损的 I/O 操作不包括在内，但将在 `volume_queue_length` 统计数据中显示，以时间点统计数据的形式呈现。

## 访问统计数据
<a name="nvme-stat-access"></a>

必须直接从 Amazon EBS 卷所附加的实例访问统计数据。您可以使用以下方法之一访问统计数据。

### Linux 实例
<a name="nvme-stat-access-linux"></a>

------
#### [ Amazon CloudWatch ]

您可以将 Amazon CloudWatch 代理配置为从实例收集统计数据，然后将其作为自定义指标提供给 CloudWatch。然后，您可以使用 CloudWatch 中的指标来分析 I/O 模式、跟踪性能趋势、创建自定义控制面板以及根据性能阈值设置自动警报。

有关配置 CloudWatch 代理的更多信息，请参阅以下内容：
+ [创建 CloudWatch 代理配置文件](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)
+ [收集 Amazon EBS NVMe 驱动程序指标](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EBS-Collect.html)

在 Amazon CloudWatch Observability EKS 附加组件版本 `4.1.0` 及更高版本中，当启用 Amazon EBS CSI 驱动程序指标时，系统会自动收集统计数据。有关更多信息，请参阅 [Amazon EBS NVMe 驱动程序指标](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-enhanced-EKS.html#Container-Insights-metrics-EBS)。

------
#### [ ebsnvme script ]

`ebsnvme` 脚本可以在 [amazon-ec2-utils Github 存储库](https://github.com/amazonlinux/amazon-ec2-utils)中找到。

**访问统计数据**

1. 连接到卷所挂载的实例。

1. 从 `amazon-ec2-utils` Github 存储库下载 `ebsnvme` 脚本。

   ```
   wget https://raw.githubusercontent.com/amazonlinux/amazon-ec2-utils/refs/heads/main/ebsnvme
   ```

1. 修改脚本的权限，使其可执行。

   ```
   sudo chmod +x ./ebsnvme
   ```

1. 运行 `ebsnvme` 脚本并指定卷的设备名称。

   ```
   sudo ./ebsnvme stats /dev/{{nvme0n1}}
   ```

------
#### [ nvme-cli tool ]

**访问统计数据**

1. 连接到卷所挂载的实例。

1. 2024 年 11 月 12 日之后发布的 Amazon Linux AMI 包含最新版本的 `nvme-cli` 工具。如果您使用的是较旧的 Amazon Linux AMI，请更新 `nvme-cli` 工具。

   ```
   sudo yum install nvme-cli
   ```

1. 运行以下命令并指定卷的设备名称。

   ```
   nvme amzn stats /dev/{{nvme0n1}}
   ```

------
#### [ Prometheus ]

您可以使用开源监控应用程序 Prometheus 和 Amazon Managed Service for Prometheus 来监控统计数据。这样可以更轻松地大规模监控容器和 Kubernetes 环境中的 Amazon EBS 卷。在 Amazon EBS CSI 驱动程序版本 v1.37.0 及更高版本中，详细的性能统计数据将作为与 Prometheus 兼容的 `/metrics` 端点公开，以便导出到 Prometheus。

有关更多信息，请参阅《Amazon Managed Service for Prometheus 用户指南》**中的 [将指标摄取到 Amazon Managed Service for Prometheus 工作区](https://docs.amazonaws.cn/prometheus/latest/userguide/AMP-ingest-methods.html)。

------

### Windows 实例
<a name="nvme-stat-access-windows"></a>

------
#### [ nvme\_amzn.exe tool ]

**访问统计数据**

1. 连接到卷所挂载的实例。

1. 确保您使用的是 AWSNVMe 驱动程序版本 `1.7.0` 或更高版本。有关更新 AWSNVMe 驱动程序的更多信息，请参阅 [Amazon NVMe 驱动程序](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/aws-nvme-drivers.html)。

1. 获取 EBS 卷的磁盘编号。有关更多信息，请参阅[将 Amazon EBS 卷映射到 NVMe 设备名称](https://docs.amazonaws.cn/ebs/latest/userguide/identify-nvme-ebs-device.html)

1. 以管理员身份运行以下命令，并指定卷的磁盘编号。

   ```
   .\nvme_amzn.exe stats {{disk_number}}
   ```

------