View a markdown version of this page

Amazon EBS 详细性能统计数据 - Amazon EBS

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

Amazon EBS 详细性能统计数据

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

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

注意事项
  • 统计数据支持所有 Amazon EBS 卷类型。

  • 统计数据仅支持附加到基于 AWS Nitro 系统构建的实例的卷。

  • Multi-Attach 已启用卷的统计数据可用。查看 Multi-Attach 已启用卷的统计数据时,统计数据特定于该实例附件,并且仅反映该实例的使用情况。

  • 这些统计数据无需额外费用即可使用。

统计信息

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

统计数据名称 全名 Type 说明
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统计数据以时间点统计数据形式呈现。

访问统计数据

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

Amazon CloudWatch

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

有关配置 CloudWatch 代理的更多信息,请参阅以下内容:

在 Amazon O CloudWatch bservability EKS 附加版本4.1.0及更高版本中,当启用 Amazon EBS CSI 驱动程序指标时,统计数据会自动收集。有关更多信息,请参阅 Amazon EBS NVMe 驱动程序指标

ebsnvme script

ebsnvme 脚本可以在 amazon-ec2-utils Github 存储库中找到。

访问统计数据
  1. 连接到卷所挂载的实例。

  2. amazon-ec2-utils Github 存储库下载 ebsnvme 脚本。

    wget https://raw.githubusercontent.com/amazonlinux/amazon-ec2-utils/refs/heads/main/ebsnvme
  3. 修改脚本的权限,使其可执行。

    sudo chmod +x ./ebsnvme
  4. 运行 ebsnvme 脚本并指定卷的设备名称。

    sudo ./ebsnvme stats /dev/nvme0n1
nvme-cli tool
访问统计数据
  1. 连接到卷所挂载的实例。

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

    sudo yum install nvme-cli
  3. 运行以下命令并指定卷的设备名称。

    nvme amzn stats /dev/nvme0n1
Prometheus

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

有关更多信息,请参阅《Amazon Managed Service for Prometheus 用户指南》中的 将指标摄取到 Amazon Managed Service for Prometheus 工作区

nvme_amzn.exe tool
访问统计数据
  1. 连接到卷所挂载的实例。

  2. 确保您使用的是 AWSNVMe 驱动程序版本 1.7.0 或更高版本。有关更新 AWSNVMe 驱动程序的更多信息,请参阅 AWS NVMe 驱动程序

  3. 获取 EBS 卷的磁盘编号。有关更多信息,请参阅将 Amazon EBS 卷映射到 NVMe 设备名称

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

    .\nvme_amzn.exe stats disk_number