本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自动扩缩策略概览
要使用 auto Scaling,您需要定义一个扩展策略,该策略可根据实际工作负载添加和删除生产变体的实例数量。
要在工作负载发生变化时自动扩展,您有两种选择:目标跟踪和步进扩展策略。
我们建议使用目标跟踪扩展策略。通过目标跟踪,您可以选择 Amazon CloudWatch 指标和目标值。Auto Scaling 创建和管理扩展策略的 CloudWatch 警报,并根据指标和目标值计算缩放调整。该策略根据需要添加和删除实例数,以使指标保持在或接近指定目标值。例如,使用具有目标值为 70 的预定义 InvocationsPerInstance
指标的扩展策略可以将 InvocationsPerInstance
保持在或接近 70。有关更多信息,请参阅《Application Auto Scaling 用户指南》中的目标跟踪扩展策略。
当您需要高级配置时,您可以使用步进扩展,如指定要在什么条件下部署多少个实例。否则,最好使用目标跟踪缩放,因为它将完全自动化。请注意,步进缩放只能通过 AWS CLI 或 Application Auto Scaling 进行管理API。有关步进扩展策略及其工作原理的概述,请参阅《App lication Auto Scaling 用户指南》中的步进扩展策略
要创建目标跟踪扩缩策略,您需要指定以下内容:
-
指标-要跟踪的 CloudWatch 指标,例如每个实例的平均调用次数。
-
目标值-指标的目标值,例如每分钟每个实例调用 70 次。
您可以使用预定义的指标或自定义指标,创建目标跟踪扩展策略。预定义指标是在枚举中定义的,因此您可以在代码中按名称指定该指标或在 SageMaker 控制台中使用。或者,您可以使用 AWS CLI 或 Application Auto Scaling API 来应用基于预定义或自定义指标的目标跟踪扩展策略。
请注意,为了防止容量快速波动,扩展活动是在两者之间的冷却时间内执行的。您可以选择为扩缩策略配置冷却时间。
有关 auto Scaling 的关键概念的更多信息,请参阅以下部分。
基于时间表的扩展
您还可以创建计划操作以在特定时间执行扩展活动。您可以创建仅扩展一次或按重复计划扩展的计划操作。计划操作运行后,您的扩展策略可以继续决定是否在工作负载发生变化时动态扩展。只能通过 AWS CLI 或 Application Auto Scaling 管理定时扩展API。有关更多信息,请参阅《Application Auto Scaling 用户指南》中的计划的扩展。
最小和最大缩放限制
配置 auto Scaling 时,您必须在创建扩展策略之前指定扩展限制。您可以分别设置最小值和最大值的限制。
最小值必须至少为 1,并且等于或小于为最大值指定的值。
最大值必须等于或大于为最小值指定的值。 SageMaker auto scaling 不会对该值强制执行限制。
要确定典型流量所需的缩放限制,请使用模型的预期流量测试您的 auto Scaling 配置。
如果变体的流量变为零,则 SageMaker 会自动缩放到指定的最小实例数。在这种情况下, SageMaker 会发出值为零的指标。
有三个选项可用于指定最小和最大容量:
-
使用控制台更新最小实例数和最大实例数设置。
-
运行register-scalable-target命令时,使用 AWS CLI
--min-capacity
并包括和--max-capacity
选项。 -
调用RegisterScalableTargetAPI并指定
MinCapacity
和MaxCapacity
参数。
提示
您可以通过增加最小值来手动缩小,也可以通过减小最大值来手动缩小。
冷却时间
当您的模型向内扩展(减少容量)或向外扩展(增加容量)时,冷却时间用于防止过度扩展。它通过在期限到期之前减慢随后的扩展活动来实现这一目标。具体而言,它会阻止删除用于缩容请求的实例,并限制为扩展请求创建实例。有关更多信息,请参阅《App lication Auto Scaling 用户指南》中的定义冷却时间。
您可以在扩展策略中配置冷却时间。
如果您未指定缩减或扩展冷却时间,则您的扩展策略将使用默认值,即每个冷却时间为 300 秒。
如果您在测试扩展配置时添加或删除实例的速度过快,请考虑增加此值。如果模型的流量出现了很多峰值,或者您为一个变体定义了多个扩展策略,则可能会看到这种行为。
如果无法快速添加实例以处理增加的流量,请考虑减小此值。
相关资源
有关配置 auto Scaling 的更多信息,请参阅以下资源:
-
AWS CLI Command Reference 的 application-autoscaling 部分
注意
SageMaker 最近推出了基于实时推理端点的新推理功能。您可以使用 SageMaker 终端节点配置创建终端节点,该配置定义了终端节点的实例类型和初始实例数。然后,创建一个推理组件,这是一个 SageMaker 托管对象,可用于将模型部署到终端节点。有关扩展推理组件的信息,请参阅SageMaker 添加新的推理功能以帮助降低基础模型部署成本和延迟