本文通过在监控指标弹性策略中配置不同的高级参数,并观察这些参数对系统行为的影响,以验证其实际效果。
前提条件
本文是通过PTS压测工具对应用进行压测,从而观察弹性策略中高级参数对应用实例扩缩容的影响。因此,需要在正式测试之前完成以下步骤。
-
说明
为了方便测试,请将应用的实例数设置为1个。
-
说明
开通CLB的访问日志后,在使用的过程中会产生额外的费用。
高级参数说明
在为应用配置监控指标策略和混合弹性策略时,SAE提供了五个高级参数,您可根据实际业务场景选择参数进行配置。具体参数说明如下:
-
弹性扩容步长:表示单位时间内最多扩容的实例数。
-
弹性缩容步长:表示单位时间内最多缩容的实例数。
-
扩容稳定窗口:通过自动扩缩算法来保证当需要执行扩容时,使用指定时间间隔内所计算的期望目标实例数中的最小值。
-
缩容稳定窗口:通过自动扩缩算法来保证当需要执行缩容时,使用指定时间间隔内所计算的期望目标实例数中的最大值。
-
禁止缩容:配置后将永远不会缩容该应用的实例。
为应用配置弹性策略
在为应用配置监控指标策略和混合弹性策略时,支持为弹性伸缩策略配置高级参数。本文只介绍关键步骤。
本文中配置的监控指标类型的弹性策略只适用于测试。在生产环境中,请根据业务需求进行配置调整。
-
在目标应用的基础信息页面,单击弹性伸缩页签,然后单击添加弹性策略。
-
在添加弹性策略的操作界面中,配置一个基于公网CLB QPS指标的弹性策略,并将目标值设置为 10。
说明暂不配置任何高级参数。
策略类型选择监控指标策略,策略名称设置为demo,应用最小实例数设置为1,应用最大实例数设置为5,最小存活实例数选择按比例并设置为50%。
-
添加完监控指标弹性策略后,启用该策略。
验证高级参数的具体作用
在对每个高级参数进行验证之前,确保监控指标策略中未配置任何高级参数。
验证弹性扩容步长参数
由于弹性扩容步长与弹性缩容步长的逻辑相似,为简化测试范围,本文仅验证弹性扩容步长的相关功能。
验证不配置弹性扩容步长时的扩容效果
-
登录性能测试服务 PTS控制台,对目标SAE应用快速进行压测。
说明压测使用的URL为SAE应用绑定的公网CLB访问地址。URL格式为
http://公网IP:端口。 -
压测开始后,查看来自目标SAE应用的自动弹性事件。
筛选来源类型为自动弹性 (HorizontalPodAutoscaler),可查看事件原因为 SuccessfulRescale 的记录,展开详情显示扩容由外部指标
slb_incall_qps超过目标值触发。弹性事件显示HPA控制器一次性将实例扩容到了5个。
验证配置弹性扩容步长后的扩容效果
验证扩容稳定窗口参数
鉴于扩容稳定窗口参数与缩容稳定窗口参数的逻辑相似,为简化测试范围,本文仅对扩容稳定窗口参数的功能进行验证。
验证不配置扩容稳定窗口时的扩容效果
-
登录性能测试服务 PTS控制台,对目标SAE应用快速进行压测。
说明压测使用的URL为SAE应用绑定的公网CLB访问地址。URL格式为
http://公网IP:端口。 -
压测开始后,对比压测开始时间和SAE应用扩容时间。
压测开始时间
SAE应用开始扩容时间
在报告列表页面查看。
可查看各压测记录的压测时间、报告名称、报告ID、压测时长、峰值并发、消耗VUM等信息。找到压测时间为2025-03-07 17:36:55的记录,单击对应的查看报告链接查看压测结果。
2025-03-07 17:36:55
在应用事件页面查看。
2025-03-07 17:37:21
通过测试显示,在不配置扩容稳定窗口参数的情况下,在SAE应用承接流量开始的二十几秒内,实例就迅速的进行了扩容。
验证配置扩容稳定窗口后的扩容效果
-
在监控指标弹性策略中配置扩容稳定窗口参数。
-
在目标应用的基础信息页面,单击弹性伸缩页签,然后单击已添加的弹性策略操作列的编辑。
-
在编辑弹性策略面板,单击高级设置,展开高级参数配置区域。
-
在高级设置区域,配置扩容稳定窗口为
300秒,不配置其余高级参数,然后单击确认。
-
-
压测开始后,对比压测开始时间和SAE应用扩容时间。
压测开始时间
SAE应用开始扩容时间
在报告列表页面查看。
找到目标压测报告记录,确认压测时间,单击操作列的查看报告查看压测结果。
2025-03-10 09:50:35
在应用事件页面查看。
事件列表中显示一条事件等级为 Normal、事件原因为 SuccessfulRescale 的记录,来源类型为 HorizontalPodAutoscaler,表示基于外部指标
slb_incall_qps成功将 Pod 数量调整为 5。测试结果显示,在配置了扩容稳定窗口参数(300秒)的情况下,当SAE应用承接流量后,实例扩容操作并未立即触发,而是在稳定窗口时间耗尽后才开始执行。这表明扩容稳定窗口参数能够有效延迟扩容操作,避免因短暂流量波动导致的资源浪费。
验证禁止缩容参数
验证不开启禁止缩容时的效果
-
登录性能测试服务 PTS控制台,对目标SAE应用快速进行压测。
说明压测使用的URL为SAE应用绑定的公网CLB访问地址。URL格式为
http://公网IP:端口。 -
压测结束后,在应用事件页面查看应用的扩缩容事件
筛选来源类型为自动弹性(HorizontalPodAutoscaler)后,事件列表中显示两条 SuccessfulRescale 事件:压测期间扩容至 5 个实例(触发原因:外部指标
slb_incall_qps超过目标值),压测结束后缩容至 1 个实例(触发原因:所有指标低于目标值)。通过测试显示,在不开启禁止缩容参数的情况下,压测结束后,应用实例会逐步缩容到一个。
验证开启禁止缩容时的效果
-
在监控指标弹性策略中开启禁止缩容。
-
在目标应用的基础信息页面,单击弹性伸缩页签,然后单击已添加的弹性策略操作列的编辑。
-
在高级设置区域,开启禁止缩容。
-
-
说明
本次测试,设置的压测时长为10分钟。
-
压测结束后(流量为0),查看应用实例是否进行了缩容。
实例列表显示5个实例状态均为Running,其中4个实例运行时间约15分钟(压测期间弹性扩容创建),1个实例运行时间约5小时(原始实例),所有实例均未被缩容回收。
测试结果显示,压测结束后约5分钟,应用实例数量仍保持为5个,未发生缩容操作。这表明禁止缩容参数已生效,能够有效避免因流量波动或误判引发的资源过度释放,从而保障服务稳定性。