View a markdown version of this page

延迟注入 - Amazon EBS

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

延迟注入

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

Pre-configured 延迟实验模板

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

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

  • 延迟增加:模拟逐渐增加的延迟。此实验使用五个延迟注入操作,总持续时间为 15 分钟。该实验将模拟 10% 的读取 I/O 和 25% 的写入延迟的逐渐增加 I/O:3 分钟 50 毫秒,3 分钟 200 毫秒,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%

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

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

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

    范围:最小值 0.1%,最大值 100%

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

    范围:最短 1 毫秒(io2)/10 毫秒(非 io2),最长 60 秒

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

    范围:最短 1 秒,最长 12 小时

监控延迟注入

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

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

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

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

注意事项

使用 EBS 延迟注入时,请考虑以下事项:

  • 所有Nitro-based 实例类型都支持延迟注入,但以下实例类型除外:p4d 、P5、P5e、trn2u、G6、G6f、Gr6、gr6f、Gr6、gr6f、m8i、、、R8i、i8Ge 和。 M8i-flex C8i-flex R8i-flex Mac-m4pro Mac-m4

  • 实验中指定的延迟值与观察到的结果延迟值之间可能会出现高达 5% 的偏差。

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

在 Amazon EBS 卷上运行延迟注入实验
  1. 打开位于 https://console.aws.amazon.com/ec2/ 的 Amazon EC2 控制台。

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

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

    控制 AWS Fault Injection Service 台打开。

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

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

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

  7. 请选择开始实验