全部产品
Search
文档中心

Serverless 应用引擎:弹性策略中高级参数的最佳实践

更新时间:May 20, 2026

本文通过在监控指标弹性策略中配置不同的高级参数,并观察这些参数对系统行为的影响,以验证其实际效果。

前提条件

本文是通过PTS压测工具对应用进行压测,从而观察弹性策略中高级参数对应用实例扩缩容的影响。因此,需要在正式测试之前完成以下步骤。

  1. 创建SAE应用

    说明

    为了方便测试,请将应用的实例数设置为1个。

  2. 为应用绑定公网CLB并为其开通CLB的访问日志

    说明

    开通CLB的访问日志后,在使用的过程中会产生额外的费用

高级参数说明

在为应用配置监控指标策略混合弹性策略时,SAE提供了五个高级参数,您可根据实际业务场景选择参数进行配置。具体参数说明如下:

  • 弹性扩容步长:表示单位时间内最多扩容的实例数。

  • 弹性缩容步长:表示单位时间内最多缩容的实例数。

  • 扩容稳定窗口:通过自动扩缩算法来保证当需要执行扩容时,使用指定时间间隔内所计算的期望目标实例数中的最小值。

  • 缩容稳定窗口:通过自动扩缩算法来保证当需要执行缩容时,使用指定时间间隔内所计算的期望目标实例数中的最大值。

  • 禁止缩容:配置后将永远不会缩容该应用的实例。

为应用配置弹性策略

在为应用配置监控指标策略混合弹性策略时,支持为弹性伸缩策略配置高级参数。本文只介绍关键步骤。

本文中配置的监控指标类型的弹性策略只适用于测试。在生产环境中,请根据业务需求进行配置调整。

  1. 在目标应用的基础信息页面,单击弹性伸缩页签,然后单击添加弹性策略

  2. 在添加弹性策略的操作界面中,配置一个基于公网CLB QPS指标的弹性策略,并将目标值设置为 10。

    说明

    暂不配置任何高级参数。

    策略类型选择监控指标策略,策略名称设置为demo,应用最小实例数设置为1,应用最大实例数设置为5,最小存活实例数选择按比例并设置为50%

  3. 添加完监控指标弹性策略后,启用该策略。

验证高级参数的具体作用

重要

在对每个高级参数进行验证之前,确保监控指标策略中未配置任何高级参数。

验证弹性扩容步长参数

由于弹性扩容步长弹性缩容步长的逻辑相似,为简化测试范围,本文仅验证弹性扩容步长的相关功能。

验证不配置弹性扩容步长时的扩容效果

  1. 登录性能测试服务 PTS控制台,对目标SAE应用快速进行压测

    说明

    压测使用的URL为SAE应用绑定的公网CLB访问地址。URL格式为http://公网IP:端口

  2. 压测开始后,查看来自目标SAE应用的自动弹性事件。

    筛选来源类型自动弹性 (HorizontalPodAutoscaler),可查看事件原因为 SuccessfulRescale 的记录,展开详情显示扩容由外部指标 slb_incall_qps 超过目标值触发。

    弹性事件显示HPA控制器一次性将实例扩容到了5个。

验证配置弹性扩容步长后的扩容效果

  1. 监控指标弹性策略中配置弹性扩容步长参数。

    1. 在目标应用的基础信息页面,单击弹性伸缩页签,然后单击已添加的弹性策略操作列的编辑

    2. 编辑弹性策略面板,单击高级设置,展开高级参数配置区域。

    3. 高级设置区域,配置弹性扩容步长1,不配置其余高级参数,然后单击确认

  2. 使用PTS压测工具对目标SAE应用快速进行压测

  3. 压测开始后,在应用事件页面查看来自目标SAE应用的自动弹性事件。

    弹性事件显示,实例的扩容是逐个进行的,而非一次性直接扩容至5个实例。这说明弹性扩容步长参数正在生效,并限制了每次的扩容数量,从而实现了通过控制扩容节奏来平衡系统稳定性和响应速度。

验证扩容稳定窗口参数

鉴于扩容稳定窗口参数与缩容稳定窗口参数的逻辑相似,为简化测试范围,本文仅对容稳定窗口参数的功能进行验证。

验证不配置扩容稳定窗口时的扩容效果

  1. 登录性能测试服务 PTS控制台,对目标SAE应用快速进行压测

    说明

    压测使用的URL为SAE应用绑定的公网CLB访问地址。URL格式为http://公网IP:端口

  2. 压测开始后,对比压测开始时间和SAE应用扩容时间。

    压测开始时间

    SAE应用开始扩容时间

    报告列表页面查看。

    可查看各压测记录的压测时间报告名称报告ID压测时长峰值并发消耗VUM等信息。找到压测时间为2025-03-07 17:36:55的记录,单击对应的查看报告链接查看压测结果。

    2025-03-07 17:36:55

    应用事件页面查看。

    2025-03-07 17:37:21

    通过测试显示,在不配置扩容稳定窗口参数的情况下,在SAE应用承接流量开始的二十几秒内,实例就迅速的进行了扩容。

验证配置扩容稳定窗口后的扩容效果

  1. 监控指标弹性策略中配置扩容稳定窗口参数。

    1. 在目标应用的基础信息页面,单击弹性伸缩页签,然后单击已添加的弹性策略操作列的编辑

    2. 编辑弹性策略面板,单击高级设置,展开高级参数配置区域。

    3. 高级设置区域,配置扩容稳定窗口300秒,不配置其余高级参数,然后单击确认

  2. 使用PTS压测工具对目标SAE应用快速进行压测

  3. 压测开始后,对比压测开始时间和SAE应用扩容时间。

    压测开始时间

    SAE应用开始扩容时间

    报告列表页面查看。

    找到目标压测报告记录,确认压测时间,单击操作列的查看报告查看压测结果。

    2025-03-10 09:50:35

    应用事件页面查看。

    事件列表中显示一条事件等级为 Normal、事件原因为 SuccessfulRescale 的记录,来源类型为 HorizontalPodAutoscaler,表示基于外部指标 slb_incall_qps 成功将 Pod 数量调整为 5。

    测试结果显示,在配置了扩容稳定窗口参数(300秒)的情况下,当SAE应用承接流量后,实例扩容操作并未立即触发,而是在稳定窗口时间耗尽后才开始执行。这表明扩容稳定窗口参数能够有效延迟扩容操作,避免因短暂流量波动导致的资源浪费。

验证禁止缩容参数

验证不开启禁止缩容时的效果

  1. 登录性能测试服务 PTS控制台,对目标SAE应用快速进行压测

    说明

    压测使用的URL为SAE应用绑定的公网CLB访问地址。URL格式为http://公网IP:端口

  2. 压测结束后,在应用事件页面查看应用的扩缩容事件

    筛选来源类型自动弹性(HorizontalPodAutoscaler)后,事件列表中显示两条 SuccessfulRescale 事件:压测期间扩容至 5 个实例(触发原因:外部指标 slb_incall_qps 超过目标值),压测结束后缩容至 1 个实例(触发原因:所有指标低于目标值)。

    通过测试显示,在不开启禁止缩容参数的情况下,压测结束后,应用实例会逐步缩容到一个。

验证开启禁止缩容时的效果

  1. 监控指标弹性策略中开启禁止缩容

    1. 在目标应用的基础信息页面,单击弹性伸缩页签,然后单击已添加的弹性策略操作列的编辑

    2. 高级设置区域,开启禁止缩容

  2. 使用PTS压测工具对目标SAE应用快速进行压测

    说明

    本次测试,设置的压测时长为10分钟。

  3. 压测结束后(流量为0),查看应用实例是否进行了缩容。

    实例列表显示5个实例状态均为Running,其中4个实例运行时间约15分钟(压测期间弹性扩容创建),1个实例运行时间约5小时(原始实例),所有实例均未被缩容回收。

    测试结果显示,压测结束后约5分钟,应用实例数量仍保持为5个,未发生缩容操作。这表明禁止缩容参数已生效,能够有效避免因流量波动或误判引发的资源过度释放,从而保障服务稳定性。