我想使用 Amazon CloudWatch 指标来计算我的 Amazon Elastic Block Store (Amazon EBS) 卷的平均吞吐量和每秒进行读写操作的次数 (IOPS)。
简短描述
要计算卷的平均吞吐量和 IOPS 数量,请将数学表达式与 CloudWatch 指标结合使用。要监控 EBS 卷中的数据,请创建 CloudWatch 警报。
或者,使用 AWSSupport-CalculateEBSPerformanceMetrics 自动化文档。该自动化使用 CloudWatch 指标来计算 EBS 卷的总吞吐量、IOPS 数量和 I/O 大小。您可以计算单个 EBS 卷的指标,也可以计算连接到 Amazon Elastic Compute Cloud (Amazon EC2) 实例的所有 EBS 卷的指标。
解决方法
手动计算吞吐量
完成以下步骤:
- 打开 CloudWatch 控制台。
- 在 Metrics(指标)下,选择 All metrics(所有指标)。
- 选择 EBS namespace(EBS 命名空间),然后选择 Per-Volume metrics(每个卷的指标)。
- 为 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+m2)/(PERIOD(m1))
**注意:**在上述表达式中,m1 是 VolumeReadOps,m2 是 VolumeWriteOps。
以每秒字节为单位计算卷处于活动状态时的平均吞吐量:
(m1+m2)/(PERIOD(m1)-(IF(m3>59, 59, m3)))
**注意:**在上述表达式中,m1 是 VolumeReadBytes,m2 是 VolumeWriteBytes,m3 是 VolumeIdleTime。
以每秒字节为单位计算平均吞吐量:
(m1+m2)/(PERIOD(m1))
**注意:**在上述表达式中,m1 是 VolumeReadBytes,m2 是 VolumeWriteBytes。
吞吐量和 IOPS 是每秒测量值。因此,当 VolumeIdleTime 超过 59 秒时,基于 VolumeIdleTime X 周期计算的指标数据点可能会生成高于预期的值。此外,由于微爆,吞吐量和 IOPS 的平均值可能与实际平均值有所不同。CloudWatch 不会以每秒为间隔聚合 EBS 卷指标。有关详细信息,请参阅如何识别我的 Amazon EBS 卷是否处于微爆状态,以及如何确保它不会影响性能?
使用自动化计算吞吐量
在开始之前,请复制要分析的资源的卷 ID 或实例 ID。您必须拥有资源 ID 才能运行该自动化文档。
(可选)为自动化创建和指定 AWS Identity and Access Management (IAM) 角色。如果您不选择角色,Automation 将使用运行该文档的用户的权限。
您可以使用 AWS Systems Manager 控制台或 AWS CLI 运行该自动化。
Systems Manager 控制台
完成以下步骤:
- 在 Systems Manager 控制台上,在您的资源所在的 AWS 区域中打开该文档。
- 在 Execute automation document(执行自动化文档)部分中,选择 Simple execution(简单执行)。
- 在 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 CLI
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
运行 AWS CLI 命令 start-automation-execution:
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
**注意:**在上述命令中,请将 ResourceId 替换为要分析的资源 ID。请将 StartTime 和 EndTime 替换为开始时间和结束时间,以便在 CloudWatch 中查看数据。请将 us-east-1 替换为您的资源所在的区域。如果您创建了 IAM 角色来运行自动化,请将 AutomationAssumeRole 替换为您的 IAM 角色。