我想使用 Amazon CloudWatch 指标来计算 Amazon Elastic Block Store (Amazon EBS) 卷的平均吞吐量和平均 IOPS 数量。
简短描述
要计算卷的平均吞吐量和 IOPS 数量,请使用 Amazon CloudWatch 指标和指标数学。要监控您的 Amazon EBS 卷中的数据,请创建 CloudWatch 警报来监控这些 EBS 卷。
或者,您可以使用 AWSSupport-CalculateEBSPerformanceMetrics 自动化文档。该自动化使用可用的 CloudWatch 指标来计算和显示许多项目。这包括 EBS 卷的合计吞吐量、IOPS 数量和 IO 大小。您可以为单个 EBS 卷执行这些任务,也可以对连接到您实例的所有 EBS 卷执行这些任务。
解决方法
手动计算吞吐量
-
打开 CloudWatch 控制台。
-
在 Metrics(指标)下,选择 All metrics(所有指标)。
-
选择 EBS namespace(EBS 命名空间),然后选择 Per-Volume Metrics(每个卷的指标)。
-
选择 Amazon EBS 卷的相应指标:
要计算平均 IOPS,请选择 VolumeReadOps、VolumeWriteOps 和 VolumeIdleTime。
要计算平均吞吐量,请选择 VolumeReadBytes、VolumeWriteBytes 和 VolumeIdleTime。
-
选择 Graphed metrics(绘成图表的指标)选项卡。
-
对于 Statistic(统计数据),选择 Sum(总和)。
-
对于 Period(周期),选择要查看的时间段。
-
记下每个绘成图表的指标前面的指标 ID,例如 m1、m2、m3 等。
-
对于 Add math(添加数学),选择 Start with empty expression(从空表达式开始),然后输入以下表达式来计算预期的平均值。
以 Ops/秒为单位计算平均 IOPS:
**注意:**在以下表达式中,m1 是 VolumeReadOps,m2 是 VolumeWriteOps。
(m1+m2)/(PERIOD(m1))
以每秒字节为单位计算卷处于活动状态时的实际平均吞吐量:
**注意:**在以下表达式中,m1 是 VolumeReadBytes,m2 是 VolumeWriteBytes,m3 是 VolumeIdleTime。
(m1+m2)/(PERIOD(m1)−m3)
以每秒字节为单位计算平均吞吐量:
**注意:**在以下表达式中,m1 是 VolumeReadBytes,m2 是 VolumeWriteBytes。
(m1+m2)/(PERIOD(m1))
**注意:**由于微爆,吞吐量和 IOPS 的平均值可能与实际平均值有所不同。吞吐量和 IOPS 是每秒测量值。CloudWatch 不会以每秒为间隔聚合 Amazon EBS 卷指标。有关详细信息,请参阅如何确定我的 Amazon EBS 卷是否处于微爆状态,并防止这种情况发生?
使用自动化计算吞吐量
先决条件:
- 复制要分析的资源的 volume ID(卷 ID)或 instance ID(实例 ID)。您需要资源 ID 才能运行该自动化文档。
- (可选)为该自动化创建和指定 AWS Identity and Access Management (IAM) 角色。如果您不选择角色,AWS Systems Manager Automation 将使用运行该文档的用户的权限。有关详细信息,请参阅使用控制台为 Automation 创建服务角色。
Systems Manager 控制台
要从 Systems Manager 控制台运行 AWSSupport-CalculateEBSPerformanceMetrics 自动化,请完成以下步骤:
- 在 Systems Manager 控制台中打开自动化文档。请务必在您的资源所在的区域中打开该文件。
- 在执行自动化文件部分中,选择简单执行。
- 在 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 角色。此步骤是可选的。
- 选择 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 指标