

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

# 执行扩缩更新
<a name="scaling-updates"></a>

扩缩更新通过增加或移除实例来调整计算环境的容量。这是最快的更新策略，不需要替换现有实例。扩缩更新适用于任何服务角色类型和分配策略，因此是最灵活的更新选项。

## 触发扩缩更新的更改
<a name="scaling-updates-triggers"></a>

当您仅修改以下设置时， AWS Batch 将执行扩缩更新。如果您修改了其中任何设置以及其他计算环境设置，[请改为 AWS Batch 执行基础架构更新](infrastructure-updates.md)。

仅修改以下设置时会触发扩缩更新：
+ `desiredvCpus`— 设置环境的目标数 v CPUs 。
+ `maxvCpus`— 定义可以启动的最大 v CPUs 数。
+ `minvCpus`— 指定CPUs 要保持的最小 v 数。
+ `minScaleDownDelayMinutes`— 指定任务完成后实例在计算环境中 AWS Batch 保持运行的最短时间（以分钟为单位）。
**注意**  
`minScaleDownDelayMinutes`不适用于在基础设施更新期间被替换的实例。

对于 Fargate 计算环境，您还可以修改以下设置以执行扩缩更新：
+ `securityGroupIds`— 计算环境的安全组 IDs 。
+ `subnets`：计算环境的子网。

**注意**  
我们建议不要使用`desiredvCpus`来启动缩放更新，因为 AWS Batch 会动态调整`desiredvCpus`。而应使用 `minvCpus`。  
更新 `desiredvCpus` 时，该值必须介于 `minvCpus` 和 `maxvCpus` 之间。新值必须大于或等于当前的 `desiredvCpus`。有关更多信息，请参阅 [更新`desiredvCpus`设置时出现错误消息](error-desired-vcpus-update.md)。

**重要**  
如果您将其中任何一个扩展设置与其他计算环境设置（例如实例类型 IDs、AMI 或启动模板）一起修改，则 AWS Batch 会执行基础架构更新而不是扩展更新。基础设施更新需要更长的时间，并且可能会替换现有实例。

------
#### [ Performing scaling updates using the AWS 管理控制台 ]

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

1. 在导航窗格中，选择**环境**，然后选择**计算环境**选项卡。

1. 选择要更新的计算环境。

1. 选择**操作**，然后选择**编辑**。

1. 修改一个或多个[支持扩缩更新的设置](#scaling-updates-triggers)。例如：
   + 对于**最小值 v CPUs**，输入最小值 v CPUs。
   + 在**所需的 v** 中CPUs，输入所需的 v 数CPUs。
   + 对于**最大 v CPUs**，请输入最大值 v CPUs。

1. 选择**保存更改**。

1. 监控计算环境状态。更新应该很快完成，因为只涉及扩缩操作。

------
#### [ Performing scaling updates using the AWS CLI ]

使用 **update-compute-environment** 命令执行扩缩更新。以下两个示例演示了常见的扩缩操作：您可以修改以下一个或多个[支持扩缩更新的设置](#scaling-updates-triggers)
+ 此示例更新了所需的 v、最小值和最大值 vCPUs：

  ```
  aws batch update-compute-environment \
      --compute-environment your-compute-environment-name \
      --compute-resources minvCpus=2,maxvCpus=8
  ```

------

## 监控扩缩更新
<a name="scaling-updates-monitoring"></a>

使用 AWS Batch 控制台监控您的扩展更新，以查看计算环境状态并检查实例数量和 vCPU 指标。您还可以使用 with AWS CLI **describe-compute-environments** 命令来检查状态并监控实例计数和 vCPU 值。