延迟注入 - Amazon EBS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

延迟注入

使用中的延迟注入操作 (aws:ebs:volume-io-latency) Amazon FIS 来模拟 Amazon EBS 卷上 I/O 延迟升高的情况,以测试您的应用程序如何应对存储性能下降。此操作允许您指定要注入的延迟值以及该值将对 I/O 目标卷产生影响的百分比。使用 Amazon FIS,您可以使用预先配置的延迟实验模板开始测试在存储故障期间可能观察到的不同 I/O 延迟模式。这些模板设计为一组初始场景,您可以使用这些场景对应用程序造成中断以测试弹性。它们并不是为了涵盖您的应用程序在现实世界中可能遇到的所有类型的影响而设计的。我们建议您根据应用程序的性能需求对其进行调整以运行多个不同的测试。您可以自定义可用模板或创建新的实验模板来测试您的应用程序特定要求。

预先配置的延迟实验模板

Amazon EBS 通过 EBS 控制台和Amazon FIS 场景库提供以下延迟实验模板。您可以直接在目标卷上使用这些模板来运行延迟注入实验。

  • 持续延迟-模拟恒定延迟。该实验使用一个延迟注入动作,总持续时间为 15 分钟。本实验模拟 50% 的读取 I/O 和 100% 的写入 I/O 的持续延迟:500 毫秒,持续 15 分钟。

  • 延迟增加-模拟延迟逐渐增加。该实验使用了五个延迟注入动作,总持续时间为 15 分钟。本实验将模拟 10% 的读取 I/O 和 25% 的写入 I/O 时延逐渐增加:3 分钟 50 毫秒,3 分钟 200 毫秒,3 分钟 700 毫秒,3 分钟 700 毫秒,3 分钟 1 秒,3 分钟 1 秒,3 分钟 15 秒。

  • 间歇性延迟 — 模拟间歇性延迟峰值以及介于两者之间的恢复期。该实验使用了三个延迟注入动作,总持续时间为 15 分钟。本实验将模拟 0.1% 的读取和写入 I/O 上的三个延迟峰值:持续 1 分钟的 30 秒峰值,持续 2 分钟的 10 秒尖峰和持续 2 分钟的 20 秒峰值。每次延迟峰值之间将有 5 分钟的恢复期。

  • 减少延迟-模拟逐渐减少的延迟。该实验使用了五个延迟注入动作,总持续时间为 15 分钟。本实验将模拟10%的读 I/O 写I/O延迟逐渐降低:3分钟为20秒,3分钟为5秒,3分钟为900毫秒,3分钟为300毫秒,3分钟为300毫秒,3分钟为40毫秒。

自定义预配置的场景

您可以自定义上面的预配置模板,也可以使用以下可自定义参数创建自己的新实验模板。

  • readIOPercentage— 将注入延迟的读取 I/O 操作的百分比。这是卷上所有读取 I/O 操作中将受该操作影响的百分比。

    射程:最小 0.1%,最大 100%

  • readLatencyMilliseconds— 读取 I/O 操作注入的延迟量。这是实验 I/O 期间在指定的读取百分比上观察到的延迟值。

    范围:最小 1 毫秒 (io2)/10 毫秒(非 io2),最大 60 秒

  • writeIOPercentage— 将注入延迟的写入 I/O 操作的百分比。这是卷上所有写入 I/O 操作中将受该操作影响的百分比。

    射程:最小 0.1%,最大 100%

  • writeLatencyMilliseconds— 写入 I/O 操作注入的延迟量。这是实验 I/O 期间在指定的写入百分比上观察到的延迟值。

    范围:最小 1ms (io2)/10 毫秒(非 io2),最大 60 秒

  • duration— 根据所 I/O 选百分比注入延迟的持续时间。

    范围:最小 1 秒,最大 12 小时

监控延迟注入

您可以通过以下方式监控对卷的性能影响:

  • 使用中的平均延迟指标 CloudWatch 来获取每分钟的平均 I/O 延迟。有关更多信息,请参阅使用 CloudWatch监控您的 EBS 卷

  • 使用 NVMe-CLI、 CloudWatch 代理和 Prometheus 提供的 EBS 详细性能统计数据来获取每秒的平均延迟。 I/O 详细指标还提供了 I/O 延迟直方图,您可以使用这些直方图来分析交易量的延迟差异。有关更多信息,请参阅 NVMe 详细的性能统计信息。

  • 使用 Amazon EBS 卷状态检查。当你注入 I/O 延迟时,卷的状态会转换到warning状态。

注意事项

使用 EBS 延迟注入时,请考虑以下几点:

  • 所有基于 Nitro的实例类型都支持延迟注入,但以下实例类型除外:p4d、P5、p5e、trn2u、G6、g6f、Gr6、gr6f、m8i、m8i-flex、c8i-flex、r8i、r8i-flex、r8i、r8i-flex、i8GE、mac-M4Pro 和 mac-M4。

  • 在实验中指定的延迟值和观察到的结果延迟中,您可能会看到高达 5% 的差异。

  • 如果您推动的 I/O 操作数量很少,则操作参数中 I/O 指定的百分比可能与受操作 I/O 影响的实际百分比不匹配。

在 Amazon EBS 卷上运行延迟注入实验
  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Volumes

  3. 选择要运行实验的卷,然后选择操作弹性测试注入卷 I/O 延迟

    控制 Amazon Fault Injection Service 台打开。

  4. 创建实验窗口中,选择要运行的实验类型:间歇性增加持续减少

  5. 选择 IAM 角色,请选择创建新角色以 Amazon FIS 创建用于代表您进行实验的新角色。或者,如果您之前创建了具有所需权限的 IAM 角色,请选择使用现有 IAM 角色。

  6. 价估算部分为您提供了运行实验的成本的估算值。使用 Amazon FIS,根据实验的目标账户数量,从头到尾每分钟向你收取操作的费用。

  7. 请选择开始实验