You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SageMaker异步端点扩缩容异常求助:无法缩至0实例

SageMaker异步端点无法缩容至0实例的解决方法

核心问题分析

你当前的配置仅实现了扩容触发逻辑(有请求积压且无实例时扩容到1),但缺少缩容的策略和对应告警规则,同时需确保自动扩缩容的最小实例数已设置为0。

解决步骤

1. 确认自动扩缩容的最小实例数为0

在注册SageMaker端点的可扩展目标时,必须将MinCapacity设为0。如果之前注册时MinCapacity是1,端点无法缩至0。检查注册代码:

client_autoscaling.register_scalable_target(
    ServiceNamespace="sagemaker",
    ResourceId=resource_id,  # 格式为 endpoint/{EndpointName}/variant/{VariantName}
    ScalableDimension="sagemaker:variant:DesiredInstanceCount",
    MinCapacity=0,  # 必须设为0
    MaxCapacity=1
)

2. 添加缩容的StepScaling策略

创建专门的缩容策略,当无请求积压时将实例数从1调整为0:

# 缩容策略
scale_in_policy = client_autoscaling.put_scaling_policy(
    PolicyName=f"{self.policy_name}-scale-in",
    ServiceNamespace="sagemaker",
    ResourceId=self.resource_id,
    ScalableDimension="sagemaker:variant:DesiredInstanceCount",
    PolicyType="StepScaling",
    StepScalingPolicyConfiguration={
        "AdjustmentType": "ChangeInCapacity",
        "MetricAggregationType": "Average",
        "Cooldown": 300,  # 缩容冷却时间建议设长一些,避免频繁扩缩容
        "StepAdjustments": [
            {
                "MetricIntervalUpperBound": 0,
                "ScalingAdjustment": -1  # 实例数减1,从1到0
            }
        ]
    }
)

3. 创建触发缩容的CloudWatch告警

监控BacklogSize指标,当该指标持续为0时触发缩容策略:

# 缩容告警
client_cloudwatch.put_metric_alarm(
    AlarmName=f"{self.policy_name}-scale-in-alarm",
    MetricName="BacklogSize",
    Namespace="AWS/SageMaker",
    Statistic="Average",
    EvaluationPeriods=3,  # 连续3个周期验证无积压
    DatapointsToAlarm=3,
    Threshold=0,
    ComparisonOperator="LessThanOrEqualToThreshold",
    TreatMissingData="notBreaching",
    Dimensions=[
        {"Name": "EndpointName", "Value": self.endpoint_name},
        {"Name": "VariantName", "Value": self.variant_name}  # 必须指定变体名称
    ],
    Period=60,
    AlarmActions=[scale_in_policy["PolicyARN"]]
)

关键注意事项

  • 缩容冷却时间(Cooldown)建议设置为300秒以上,避免因短暂的无请求状态频繁缩容,影响后续请求响应速度。
  • 告警必须指定VariantName维度,否则可能无法正确关联到端点变体。
  • 确保BacklogSize指标能正常采集:异步端点的请求积压会反映在该指标上,无请求时指标值为0。

内容的提问来源于stack exchange,提问作者Francesco Camussoni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 22:14:53