

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

# 教程：使用 AWS FIS 在实例上运行 CPU stress
<a name="fis-tutorial-run-cpu-stress"></a>

您可以使用 AWS 故障注入服务 (AWS FIS) 来测试您的应用程序如何处理 CPU 压力。使用本教程创建实验模板，该模板使用 AWS FIS 来运行预先配置的 SSM 文档，该文档在实例上运行 CPU stress。此教程会在实例的 CPU 利用率超过配置阈值时，使用停止条件以停止实验。

有关更多信息，请参阅 [预先配置的 AWS FIS SSM 文档](actions-ssm-agent.md#fis-ssm-docs)。

## 先决条件
<a name="run-cpu-stress-prerequisites"></a>

在使用 AWS FIS 运行 CPU stress 之前，请先完成以下先决条件。

**创建一个 IAM 角色**  
创建一个角色并附加一个策略，使 AWS FIS 能够代表您使用该`aws:ssm:send-command`操作。有关更多信息，请参阅 [适用于 AWS FIS 实验的 IAM 角色](getting-started-iam-service-role.md)。

**验证对 AWS FIS 的访问权限**  
确保您可以访问 AWS FIS。有关更多信息，请参阅 [AWS FIS 策略示例](security_iam_id-based-policy-examples.md)。

**准备 EC2 测试实例**
+ 按照预配置 SSM 文档的要求，使用 Amazon Linux 2 或 Ubuntu 启动 EC2 实例。
+ 此实例必须由 SSM 托管。要验证实例是否由 SSM 托管，则打开 [Fleet Manager 控制台](https://console.aws.amazon.com/systems-manager/managed-instances)。如果实例不是由 SSM 管理的，请验证是否已安装 SSM 代理，并且该实例具有与 A **ma SSMManaged InstanceCore** zon 策略关联的 IAM 角色。要验证已安装的 SSM 代理，则连接实例并运行以下命令。

  **Amazon Linux 2**

  ```
  yum info amazon-ssm-agent
  ```

  **Ubuntu**

  ```
  apt list amazon-ssm-agent
  ```
+ 对实例启用详细监控。此操作会提供时长 1 分钟的数据，需要额外付费。选择所需实例，然后依次选择**操作**、**监控和问题排查**，以及**管理详细监控**。

## 步骤 1：为停止条件创建 CloudWatch 警报
<a name="getting-started-create-alarms"></a>

配置 CloudWatch 警报，以便在 CPU 使用率超过您指定的阈值时可以停止实验。以下过程将目标实例的 CPU 利用率阈值设置为 50%。有关更多信息，请参阅 [停止条件](stop-conditions.md)。

**创建警报，指明 CPU 利用率何时超过阈值**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择目标实例，然后选择**操作**、**监控和故障排除**、**管理 CloudWatch警报**。

1. 对于**警报通知**，使用切换按钮关闭 Amazon SNS 通知。

1. 对于**警报阈值**，请使用以下设置：
   + **样本分组依据**：**最大值**
   + **要采样的数据类型**：**CPU 利用率**
   + **百分比**：**50**
   + **周期**：**1 Minute**

1. 配置完警报后，选择**创建**。

## 步骤 2：创建实验模板
<a name="run-cpu-stress-create-template"></a>

使用 AWS FIS 控制台创建实验模板。在模板中，您可以指定要运行的以下操作：[aws: ssm: s AWSFIS-Run](actions-ssm-agent.md#awsfis-run-cpu-stress) end-command/-CPU-stress。

**创建试验模板**

1. 打开 AWS FIS 控制台，网址[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/)为。

1. 在导航窗格中，选择**实验模板**。

1. 选择**创建实验模板**。

1. 对于**步骤 1，指定模板详细信息**，请执行以下操作：

   1. 在**描述和名称**中，输入模板的描述。

   1. 选择 “**下一**步”，然后移至**步骤 2，指定操作和目标**。

1. 对于**操作**，请执行以下操作：

   1. 选择**添加操作**。

   1. 输入操作名称。例如，输入 **runCpuStress**。

   1. 对于**操作类型**，选择 **aws: ssm: s AWSFIS-Run** end-command/-CPU-stress。此操作会自动向 **Document ARN** 添加 SSM 文档的 ARN。

   1. 对于 **Targ** et，请保留 AWS FIS 为你创建的目标。

   1. 对于**操作参数**，**文档参数**，输入以下内容：

      ```
      {"DurationSeconds":"120"}
      ```

   1. 在 **“操作” 参数** “**持续时间**” 中，指定 5 分钟 (PT5M)。

   1. 选择**保存**。

1. 对于**目标**，请执行以下操作：

   1.  AWS 为 FIS 在上一步中自动为您创建的目标选择 “**编辑**”。

   1. 将默认名称替换为更具描述性的名称。例如，输入 **testInstance**。

   1. 验证**资源类型**是否为 **aws:ec2:instance**。

   1. 对于 “**目标方法**” IDs，选择 “**资源**”，然后选择测试实例的 ID。

   1. 对于**选择模式**，选择**全部**。

   1. 选择**保存**。

1. 选择**下一步**进入**步骤 3，配置服务访问权限**。

1. 对于**服务访问权限**，选择**使用现有 IAM 角色**，然后选择您按照本教程先决条件中所述创建的 IAM 角色。如未显示此角色，请验证其是否具有必要的信任关系。有关更多信息，请参阅 [适用于 AWS FIS 实验的 IAM 角色](getting-started-iam-service-role.md)。

1. 选择 “**下一**步” 进入**步骤 4 “配置可选设置”**。

1. 对于**停止条件**，请选择您在步骤 1 中创建的 CloudWatch 警报。

1. （可选）对于**标签**，选择**添加新标签**，然后指定标签键和标签值。您添加的标签将应用于实验模板，而不是应用于使用此模板运行的实验。

1. 选择 “**下一**步” 进入**步骤 5，“查看并创建”**。

1. 查看模板并选择**创建实验模板**。当提示您确认时，输入`create`，然后选择**创建实验模板**。

**（可选）查看 JSON 格式的实验模板**  
选择**导出**选项卡。以下是通过前述控制台程序创建的 JSON 示例。

```
{
    "description": "Test CPU stress predefined SSM document",
    "targets": {
        "testInstance": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:{{region}}:{{123456789012}}:instance/{{instance_id}}"
            ],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "runCpuStress": {
            "actionId": "aws:ssm:send-command",
            "parameters": {
                "documentArn": "arn:aws:ssm:{{region}}::document/AWSFIS-Run-CPU-Stress",
                "documentParameters": "{\"DurationSeconds\":\"120\"}",
                "duration": "PT5M"
            },
            "targets": {
                "Instances": "testInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": "arn:aws:cloudwatch:{{region}}:{{123456789012}}:alarm:awsec2-{{instance_id}}-GreaterThanOrEqualToThreshold-CPUUtilization"
        }
    ],
    "roleArn": "arn:aws:iam::{{123456789012}}:role/{{AllowFISSSMActions}}",
    "tags": {}
}
```

## 步骤 3：开始实验
<a name="run-cpu-stress-start-experiment"></a>

您可以使用创建好的实验模板开始实验。

**开始实验**

1. 您应该位于刚刚创建的实验模板的详细信息页面。否则，请选择**实验模板**，然后选择实验模板 ID，打开详细信息页面。

1. 请选择**开始实验**。

1. （可选）要为实验添加标签，请选择**添加新标签**，然后输入标签键和标签值。

1. 请选择**开始实验**。当系统提示进行确认时，输入 **start**。请选择**开始实验**。

## 步骤 4：跟踪实验进度
<a name="run-cpu-stress-track-experiment"></a>

您可以跟踪正在运行的实验进度，直到实验完成、停止或失败。

**跟踪实验进度**

1. 您应该位于刚开始的实验的详细信息页面。否则，请选择**实验**，然后选择对应 ID 打开详细信息页面。

1. 要查看实验状态，请在**详细信息**窗格中选择**状态**。有关更多信息，请参阅[实验状态](view-experiment-progress.md#experiment-states)。

1. 当实验状态为**正在运行**时，转到下一步。

## 步骤 5：验证实验结果
<a name="run-cpu-stress-verify-experiment-results"></a>

您可以在实验运行期间监控实例的 CPU 利用率。CPU 利用率达到阈值时会触发警报，实验也会因停止条件而停止。

**验证实验结果**

1. 选择**停止条件**选项卡。绿色边框和绿色勾选图标表示警报的初始状态为 `OK`。红线则表示警报阈值。如需更详细的图表，请在小组件菜单中选择**放大**。  
![该图显示了在大约为 50% 的低活动期之后 CPU 利用率峰值上升至 100%。](http://docs.aws.amazon.com/zh_cn/fis/latest/userguide/images/stop-conditions-pane-ok.png)

1. 当 CPU 利用率超过阈值时，**停止条件**选项卡中会显示红色的边框和感叹号图标，表示警报状态已更改为 `ALARM`。**详细信息**窗格中的实验状态显示为**已停止**。如果选择此状态，则会显示“实验因停止条件而停止”的消息。  
![该图显示了一段时间内的 CPU 利用率，红色阈值线为 50%。](http://docs.aws.amazon.com/zh_cn/fis/latest/userguide/images/stop-conditions-pane-in-alarm.png)

1. 当 CPU 利用率降低到阈值以下时，会显示绿色的边框和勾选图标，表示警报状态已更改为 `OK`。

1. （可选）在小组件菜单中选择**在警报中查看**。这将打开 CloudWatch 控制台中的警报详细信息页面，您可以在其中获取有关警报的更多详细信息或编辑警报设置。

## 步骤 6：清除
<a name="stop-instances-cleanup"></a>

如果您不再需要为实验创建的 EC2 测试实例，可以将其删除。

**终止实例**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择测试实例，然后依次选择**实例状态**和**终止实例**。

1. 当系统提示您确认时，选择**终止**。

如果您不再需要实验模板，可以将其删除。

**使用 AWS FIS 控制台删除实验模板**

1. 打开 AWS FIS 控制台，网址[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/)为。

1. 在导航窗格中，选择**实验模板**。

1. 选择实验模板，然后依次选择**操作**和**删除实验模板**。

1. 当系统提示您确认时，输入 **delete**，然后选择**删除实验模板**。