如何使用 CloudWatch 指标来计算我的 EBS 卷提供的平均吞吐量和平均 IOPS 数量?

2 分钟阅读
0

我想使用 Amazon CloudWatch 指标来计算 Amazon Elastic Block Store (Amazon EBS) 卷的平均吞吐量和平均 IOPS 数量。

简短描述

要计算卷的平均吞吐量和 IOPS 数量,请使用 Amazon CloudWatch 指标指标数学。要监控您的 Amazon EBS 卷中的数据,请创建 CloudWatch 警报来监控这些 EBS 卷。

或者,您可以使用 AWSSupport-CalculateEBSPerformanceMetrics 自动化文档。该自动化使用可用的 CloudWatch 指标来计算和显示许多项目。这包括 EBS 卷的合计吞吐量、IOPS 数量和 IO 大小。您可以为单个 EBS 卷执行这些任务,也可以对连接到您实例的所有 EBS 卷执行这些任务。

解决方法

手动计算吞吐量

  1. 打开 CloudWatch 控制台

  2. Metrics(指标)下,选择 All metrics(所有指标)。

  3. 选择 EBS namespace(EBS 命名空间),然后选择 Per-Volume Metrics(每个卷的指标)。

  4. 选择 Amazon EBS 卷的相应指标:
    要计算平均 IOPS,请选择 VolumeReadOpsVolumeWriteOpsVolumeIdleTime
    要计算平均吞吐量,请选择 VolumeReadBytesVolumeWriteBytesVolumeIdleTime

  5. 选择 Graphed metrics(绘成图表的指标)选项卡。

  6. 对于 Statistic(统计数据),选择 Sum(总和)。

  7. 对于 Period(周期),选择要查看的时间段。

  8. 记下每个绘成图表的指标前面的指标 ID,例如 m1、m2、m3 等。

  9. 对于 Add math(添加数学),选择 Start with empty expression(从空表达式开始),然后输入以下表达式来计算预期的平均值。

    以 Ops/秒为单位计算平均 IOPS:
    **注意:**在以下表达式中,m1VolumeReadOpsm2VolumeWriteOps
    (m1+m2)/(PERIOD(m1))

    以每秒字节为单位计算卷处于活动状态时的实际平均吞吐量:
    **注意:**在以下表达式中,m1VolumeReadBytesm2VolumeWriteBytesm3VolumeIdleTime
    (m1+m2)/(PERIOD(m1)−m3)

    以每秒字节为单位计算平均吞吐量:
    **注意:**在以下表达式中,m1VolumeReadBytesm2VolumeWriteBytes
    (m1+m2)/(PERIOD(m1))

**注意:**由于微爆,吞吐量和 IOPS 的平均值可能与实际平均值有所不同。吞吐量和 IOPS 是每秒测量值。CloudWatch 不会以每秒为间隔聚合 Amazon EBS 卷指标。有关详细信息,请参阅如何确定我的 Amazon EBS 卷是否处于微爆状态,并防止这种情况发生?

使用自动化计算吞吐量

先决条件:

  1. 复制要分析的资源的 volume ID(卷 ID)或 instance ID(实例 ID)。您需要资源 ID 才能运行该自动化文档。
  2. (可选)为该自动化创建和指定 AWS Identity and Access Management (IAM) 角色。如果您不选择角色,AWS Systems Manager Automation 将使用运行该文档的用户的权限。有关详细信息,请参阅使用控制台为 Automation 创建服务角色

Systems Manager 控制台

要从 Systems Manager 控制台运行 AWSSupport-CalculateEBSPerformanceMetrics 自动化,请完成以下步骤:

  1. Systems Manager 控制台中打开自动化文档。请务必在您的资源所在的区域中打开该文件。
  2. 执行自动化文件部分中,选择简单执行
  3. Input parameters(输入参数)部分中,输入以下参数:
    ResourceId - 输入要分析的 EBS 卷或 EC2 实例的 ID
    StartTime - 以 yyyy-mm-ddThh:mm:ss 格式和 UTC 输入时间。例如,2021-06-09T13:30:10
    EndTIme, - 以 yyyy-mm-ddThh:mm:ss 格式和 UTC 输入时间。例如,2021-06-16T13:30:10
    AutomationAssumeRole - 为这次运行选择 IAM 角色。此步骤是可选的。
  4. 选择 Execute(执行)。

最终输出是您的控制面板的 URL。要查看 URL,请展开 Outputs(输出)字段。使用此控制面板查看分析的指标及其限制。

**注意:**要删除控制面板,您需要 cloudwatch:DeleteDashboards IAM 权限。

AWS 命令行界面 (AWS CLI)

**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅排查 AWS CLI 错误。此外,请确保您使用的是最新版本的 AWS CLI

要从 AWS CLI 运行自动化,请使用以下命令。替换以下值:

  • ResourceId 值替换为要分析的资源 ID。
  • StartTime 值替换为在 CloudWatch 中查看数据的开始时间(格式为 yyyy-mm-ddThh:mm:ss,时区为 UTC)。
  • EndTIme 值替换为在 CloudWatch 中查看数据的结束时间(格式为 yyyy-mm-ddThh:mm:ss,时区为 UTC)。
  • AutomationAssumeRole 值替换为本次运行的 IAM 角色。此步骤是可选的。另请注意,此示例中未指定此值。
  • us-east-1 区域替换为您的资源所在区域。
aws ssm start-automation-execution --document-name "AWSSupport-CalculateEBSPerformanceMetrics" --document-version "\\$DEFAULT" --parameters '{"ResourceId":\["i-example12345"\], "StartTime":\["2021-06-09T13:30:10"\], "EndTime":\["2021-06-16T13:30:10"\], "Period":\["60"\], "AutomationAssumeRole":\[""\]}' --region us-east-1

相关信息

Amazon EBS 的 Amazon CloudWatch 指标

AWS 官方
AWS 官方已更新 5 个月前