我的 Amazon Elastic Block Store (Amazon EBS) 卷 I/O 等待时间较长,队列长度增加,延迟激增。
当 I/O 操作完成出现延迟时,您的队列长度会增加,Amazon EBS 卷的 I/O 等待时间较长。以下是延迟增加的一些常见原因。
如果您已达到吞吐量和 IOPS 配额,则可能会遇到延迟。要确定您的吞吐量和 IOPS 配额,请参阅如何计算 Amazon EBS 卷的最大 IOPS 和吞吐量?然后,检查您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例的 EBS 卷是否达到吞吐量或 IOPS 配额。
如果您经常达到吞吐量或 IOPS 配额,请将卷类型或大小更改为满足应用程序需求的卷类型或大小。要确定要使用哪种卷类型,最佳做法是根据测试环境中的工作负载对 EBS 卷进行基准测试。
EBS 优化的 EC2 实例具有连接到该实例的所有 EBS 卷的最大汇总吞吐量和 IOPS。您可能会看到 I/O 等待时间过长和延迟增加,但您的卷未达到其吞吐量或 IOPS 配额。如果发生这种情况,请检查卷的吞吐量或 IOPS 是否达到实例的吞吐量或 IOPS 配额。
例如,您有连接到 t3.medium 实例的 1 TiB gp3 卷,预调配 IOPS 为 16,000,吞吐量为 700 Mibps。t3.medium 实例在所有连接的卷上可以实现总计 260.57 Mibps 吞吐量和 11,800 IOPS 的最大性能。该实例在 24 小时内仅在 30 分钟内实现此目的。然后,性能被限制到在所有连接的卷上总计 43.43 Mibps 吞吐量和 2,000 IOPS 的基准。尽管一个卷可以管理高达 700 MiBps 和 16,000 IOPS,但该实例无法实现这种性能。
如果您的应用程序性能需求超过实例的容量,则将实例类型更改为可以管理工作负载的实例类型。
当卷突增 IOPS 或吞吐量的时间明显短于收集周期时,就会发生微爆。Amazon CloudWatch 未显示微爆。有关详细信息,请参阅如何确定我的 Amazon EBS 卷是否处于微爆状态,并防止这种情况发生?
从快照恢复卷时,该卷必须初始化数据。首次访问每个数据块时,延迟可能会增加,因为该卷必须从 Amazon Simple Storage (Amazon S3) 下载数据。
为了最大限度地减少延迟,您可以强制初始化卷。您还可以启用 Amazon EBS 快速快照恢复,以便在创建卷时完全初始化该卷。
如果您尝试了前面的所有故障排除步骤并继续遇到高延迟,请联系 AWS Support。
如何使用 CloudWatch 指标计算我的 EBS 卷提供的平均吞吐量和平均 IOPS 数量?
解决从 EBS 快照恢复 Amazon EBS 卷时的 I/O 延迟问题