跳至内容

如何识别我的 EBS 卷是否发生微爆,以及如何确保它不会影响性能?

1 分钟阅读
0

我的 Amazon Elastic Block Store (Amazon EBS) 卷在 Amazon CloudWatch 中未达到其平均吞吐量或平均每秒进行 I/O 操作的次数 (IOPS) 配额。但是该卷遭遇了节流,延迟很高,队列长度也很长。

解决方法

默认情况下,CloudWatch 指标每隔一分钟收集一次样本。但是,I/O 操作以毫秒速率进行。当卷出现高 IOPS 或吞吐量突增的时间间隔短于收集间隔时,CloudWatch 不会捕获突增情况。要确定您的卷在一分钟内是否出现性能突增,请执行以下操作。

使用 CloudWatch 指标来识别可能发生的微爆情况

检查 VolumeIOPSExceededCheck 和 VolumeThroughputExceededCheck

VolumeIOPSExceededCheck 和 VolumeThroughputExceededCheck 指标显示 IOPS 或吞吐量何时超过卷的预置性能。这些指标会显示一分钟内任意时间的 IOPS 和吞吐量,并以一分钟为粒度提供整合信号。如果这些指标的值为 1,则表明工作负载正在发生微爆。

检查 VolumeIdleTime 指标

VolumeIdleTime 指标图表显示在指定持续时间内未提交读取或写入操作的秒数。如果 VolumeIdleTime 数值较高,则该卷将在大部分持续时间内保持空闲状态。如果过去同一持续时间内的 IOPS 或吞吐量足够高,则表明该卷发生了微爆。

计算 EBS 卷收到的平均吞吐量和平均 IOPS

使用以下公式计算 EBS 卷的平均吞吐量:

估计平均吞吐量 = (Sum(VolumeReadBytes) + Sum(VolumeWriteBytes) ) / CEIL(Period - Sum(VolumeIdleTime))

使用以下公式计算 EBS 卷的平均 IOPS:

估计平均 IOPS = (Sum(VolumeReadOps) + Sum(VolumeWriteOps)) / Ceil(Period - Sum(VolumeIdleTime))

使用 CEIL 函数来避免计算中的边缘情况。上述公式适用于 VolumeIdleTime 非常接近周期的场景。为提供更准确的计算,CEIL 会确保接近零的值不会改变结果。有关详细信息,请参阅指标数学支持的函数

如果平均吞吐量或 IOPS 大于卷的最大吞吐量或 IOPS,则表明工作负载发生了微爆。

使用 Amazon EBS 详细性能统计数据来识别可能发生的微爆

要获得实时可见性,请拉取卷的详细性能统计数据。这些统计数据会显示您的工作负载尝试达到高于卷的预置性能配额的 IOPS 或吞吐量时所持续的微秒数。Amazon EBS 仅会在卷附加到 Amazon Elastic Compute Cloud (Amazon EC2) 实例期间保留这些统计数据。要使用这些统计数据来检查发生微爆的根本原因,Amazon EBS 必须已捕获这些数据。

要访问这些统计数据,请参阅访问统计数据

使用操作系统级工具来识别可能发生的微爆情况

即使 VolumeIdleTime 很低,EBS 卷也可能会发生微爆。对于 VolumeIdleTime 较低的卷,请使用具有精细样本收集功能的操作系统 (OS) 工具,以更有效地识别工作负载是否发生微爆。

Linux

要以秒级粒度报告所有挂载卷的 I/O 统计数据,请运行 iostat 命令:

iostat -xdmzt 1

iostat 工具是 sysstat 软件包的一部分。如果找不到 iostat 命令,请运行以下命令,在 Amazon Linux 亚马逊机器映像 (AMI) 上安装 sysstat:

sudo yum install sysstat -y

有关详细信息,请参阅 Linux 手册网站上的 iostat

要确定您是否达到了吞吐量配额,请查看输出中的 rMBpswMBps。如果 rMBps + wMBps 大于卷的最大吞吐量,则卷会发生微爆。

要确定您是否达到了 IOPS 配额,请查看输出中的 rpswps。如果 rps + wps 大于卷的最大 IOPS,则卷会发生微爆。

Windows

在 Windows 性能监视器中运行 perfmon 命令

根据应用程序的需求更改卷大小或类型,以防发生微爆

微爆可能会导致应用程序中出现 I/O 节流或 I/O 延迟。为防止出现此问题,请修改卷的类型和大小,使其符合您所需的 IOPS 和吞吐量要求,即使其处于微爆级别。

实例可以向所有已附加的 EBS 卷推送的 IOPS 和吞吐量存在最大值。有关详细信息,请参阅 Amazon EBS 优化的实例类型

最佳做法是根据工作负载对您的卷进行基准测试,以确定可以在测试环境中安全地容纳您的工作负载的卷类型。

AWS 官方已更新 7 个月前