配置弹性伸缩策略
在分布式应用管理中,弹性伸缩是十分重要的运维能力。它能够根据实例状态自动增加或减少实例数量,即扩容或缩容,从而提高资源利用率、降低资源成本。本文介绍如何查看应用实例监控,以及如何配置、验证并管理Serverless应用引擎SAE(Serverless App Engine)定时弹性策略、监控指标弹性策略和混合弹性策略。
前提条件
背景信息
弹性伸缩配置方式支持以下两种。
- 手动扩缩:当应用扩缩容为紧急需求时,例如突发性的流量高峰,您可以选择手动扩缩方式。具体操作,请参见手动扩缩。
- 自动扩缩:当应用扩缩容为非紧急需求时,例如周期性的流量高峰,您可以选择自动扩缩方式,即配置弹性伸缩策略。SAE弹性伸缩策略包括定时弹性策略、监控指标弹性策略和混合弹性策略。更多信息,请参见SAE弹性伸缩最佳实践。
配置弹性伸缩策略的全流程如下图所示。

适用场景
SAE支持配置三种类型的弹性伸缩策略。
视频教程
注意事项
- 最多支持创建5条定时策略、1条监控指标策略或1条混合弹性策略,三种策略不能同时使用。
- 弹性策略启用时,请勿手动进行应用生命周期管理操作,例如应用扩缩、部署应用、更改规格、重启应用和停止应用。如果需要对应用进行该类操作,先停用弹性策略后,再手动执行操作。
- 如果当前应用处于扩容、缩容、部署(单批、分批或灰度)、更改规格、重启和停止等过程,需等待过程完成后,才可添加或启动弹性策略。
- 单应用的实例数上限为50。如需提升额度,请加入钉群(钉群号:32874633),申请开通白名单。
查看应用实例监控(邀测)
如果您未使用弹性功能,可以依据应用实例的监控指标趋势,评估是否需要为自己的业务设置弹性策略;如果您正在使用弹性功能,可以通过查看监控指标检验弹性规则启用后的效果,合理调整弹性阈值、设置报警规则。
说明 应用实例趋势图的功能邀测中,如需使用,请加入钉群(钉群号:32874633),申请开通白名单。
- 登录SAE控制台。
- 在左侧导航栏,选择 ,在顶部菜单栏选择地域,然后单击具体应用名称。
- 在基本信息页签的应用实例趋势图,按需筛选监控维度。您可以滑动趋势图下方的时间轴,调整数据展示的时间范围;也可以单击左下角的图例,选择数据展示的类别。说明 SAE仅支持查询7天内的应用实例监控数据。
配置弹性伸缩策略
- 登录SAE控制台。
- 在左侧导航栏,选择 ,在顶部菜单栏选择地域,然后单击具体应用名称。
- 在基本信息页面,单击右上角的自动扩缩,进入添加弹性策略面板。
- 在添加弹性策略面板,设置策略信息。
- 定时策略
配置项 说明 策略类型 选择定时策略。 策略名称 自定义。 选择时间 - 短期:需要指定执行定时弹性伸缩策略的起止日期。
- 长期:无需指定执行定时弹性伸缩策略的结束日期。
周期 执行定时弹性伸缩策略的周期。 - 每天:每天指定时间执行定时策略。
- 每周:每周指定天数的指定时间执行定时策略。
- 每月:每月指定日期的指定时间执行定时策略。
单天内的触发时间 设置弹性伸缩策略触发的时间,以及该时间段内需要保持的应用实例数。示例如下。 如果周期设为每天,第一条定时策略触发开始时间为08:00,目标实例数为10个;第二条定时策略开始时间为20:00,目标实例数为3个。则在08:00至20:00之间,SAE依据所设的规则,将该应用的实例数保持为10个,在20:00至次日08:00之间,应用实例数保持为3个。
重要- 单条定时策略内,两个邻近的单天内的触发时间间隔需大于5分钟。如果设置了多条定时策略,SAE会检查重复日期内的多个触发时间点的时间间隔。
- 如果设置了多条定时策略,并且两个触发点时间重复,那么遵循以新盖旧的原则,以最后添加的触发点策略为准。设置定时策略时,需避免时间冲突。
- 监控指标策略
配置项 说明 策略类型 选择监控指标策略。 策略名称 自定义。 触发条件 设置以下监控指标中的一个或多个。默认显示CPU使用率和内存使用率指标类型,单击添加设置更多指标。 - CPU使用率:单个实例的平均CPU使用率。
- 内存使用率:单个实例的平均内存使用率 。
- TCP活跃连接数:30秒内单个实例的平均TCP活跃连接数。
- TCP总连接数:30秒内单个实例的平均TCP总连接数。
- 应用QPS:1分钟内单个实例的平均QPS。
- 应用响应时间(RT):1分钟内应用所有服务接口平均RT值。
- 公网CLB QPS:15秒内单个实例的平均公网CLB QPS。
- 公网CLB响应时间:15秒内公网CLB平均RT。
- 私网CLB QPS:15秒内单个实例的平均私网CLB QPS。
- 私网CLB响应时间:15秒内私网CLB平均RT。
实例数设置 输入实例数或者滑动下方的指针设置实例数。 - 应用最小实例数:触发弹性伸缩条件后,应用缩容,其实例数可达到的目标值。
- 应用最大实例数:触发弹性伸缩条件后,应用扩容,其实例数可达到的目标值。
- 最小存活实例数:每次部署最小存活的实例数。取值需大于等于0,且小于等于当前应用实例总数。仅当应用最小实例数小于应用最小存活实例数时,才会显示该配置项。单击设置,在设置最小存活实例数对话框设置最小存活实例数量。
说明 手动扩缩与添加弹性策略能够设置的最大实例数同步。每次滚动部署最小存活的实例数建议大于等于1,保证业务不中断。如果设置为0,应用升级过程中业务将会中断。高级设置 - 弹性扩容步长:单位时间内最多扩容的实例数。
- 弹性缩容步长:单位时间内最多缩容的实例数。
- 扩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行扩容时,使用指定时间间隔内所计算的期望目标实例数中的最小值。
- 缩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行缩容时,使用指定时间间隔内所计算的期望目标实例数中的最大值。
- 禁止缩容:开启后将永远不会缩容该应用的实例,能有效防止在流量高峰期缩容造成业务风险。默认关闭。
- 混合弹性策略
配置项 说明 策略类型 选择混合弹性策略。 策略名称 自定义。 触发条件 设置以下监控指标中的一个或多个。默认显示CPU使用率和内存使用率指标类型,单击添加设置更多指标。 - CPU使用率:单个实例的平均CPU使用率。
- 内存使用率:单个实例的平均内存使用率 。
- TCP活跃连接数:30秒内单个实例的平均TCP活跃连接数。
- TCP总连接数:30秒内单个实例的平均TCP总连接数。
- 应用QPS:1分钟内单个实例的平均QPS。
- 应用响应时间(RT):1分钟内应用所有服务接口平均RT值。
- 公网CLB QPS:15秒内单个实例的平均公网CLB QPS。
- 公网CLB响应时间:15秒内公网CLB平均RT。
- 私网CLB QPS:15秒内单个实例的平均私网CLB QPS。
- 私网CLB响应时间:15秒内私网CLB平均RT。
应用最大最小实例数设置 默认设置 设置应用实例数。 - 应用最小实例数:触发弹性伸缩条件后,应用缩容,其实例数可达到的目标值。
- 应用最大实例数:触发弹性伸缩条件后,应用扩容,其实例数可达到的目标值。
- 最小存活实例数:每次部署最小存活的实例数。取值需大于等于0,且小于等于当前应用实例总数。仅当应用最小实例数小于应用最小存活实例数时,才会显示该配置项。单击设置,在设置最小存活实例数对话框设置最小存活实例数量。
说明 手动扩缩与添加弹性策略能够设置的最大实例数同步。每次滚动部署最小存活的实例数建议大于等于1,保证业务不中断。如果设置为0,应用升级过程中业务将会中断。特殊时间段设置 给特定的时间段设置特定的实例最大最小值。默认显示选择时间1。单击+添加特殊时间段,设置选择时间2。 - 短期:需要指定执行定时弹性伸缩策略的起止日期。
- 长期:无需指定执行定时弹性伸缩策略的结束日期。
说明- 特殊时间段设置不超过2条。
- 同一条策略内,单天内的触发时间段不能重合,不超过20条。
周期 在周期下拉列表,选择每天、每周或每月,并配置相应信息。 - 每天:每天指定时间执行定时策略。
- 每周:每周指定天数的指定时间执行定时策略。
- 每月:每月指定日期的指定时间执行定时策略。
单天内的触发时间 设置弹性伸缩策略触发的时间,以及该时间段内需要保持的应用实例数。示例如下。 如果周期设为每天,特殊时间段触发时间为08:00~20:00,应用最小实例数为3个,应用最大实例数为10个,那么基于已配置的触发条件,SAE在指定的日期内会执行以上定时弹性伸缩策略。
高级设置 - 弹性扩容步长:单位时间内最多扩容的实例数。
- 弹性缩容步长:单位时间内最多缩容的实例数。
- 扩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行扩容时,使用指定时间间隔内所计算的期望目标实例数中的最小值。
- 缩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行缩容时,使用指定时间间隔内所计算的期望目标实例数中的最大值。
- 禁止缩容:开启后将永远不会缩容该应用的实例,能有效防止在流量高峰期缩容造成业务风险。默认关闭。
说明- 混合弹性策略设置的多个特殊时间段之间不可重叠。
- 单条混合弹性策略内设置的触发时间,不能小于系统当前时间;如果小于当前时间,该策略将在下个执行周期内生效。
- 单击下一步:预览定时策略确认策略信息,然后单击确认。
- 策略设置完成后,在实例部署信息页签的弹性伸缩区域,单击目标策略操作列的启用。
- 在启用弹性策略对话框,单击确认,启用该策略。当该策略的状态切换至已启用时,表明策略启用成功。
验证弹性伸缩策略
启用弹性策略后,SAE会自动监控应用状态,当满足触发条件时,SAE依据弹性策略进行应用实例扩容或缩容。您可以通过以下步骤验证弹性伸缩策略是否生效。
- 登录SAE控制台。
- 在左侧导航栏,单击应用列表,在顶部菜单栏,选择地域,然后在应用列表页面,找到目标应用。可以在弹性策略启用状态和当前实例数/目标实例数列查看弹性策略的运行状态;也可以单击目标名称,在基本信息页签的应用信息区域,查看应用运行实例数。如果运行实例数与弹性策略设置的实例数一致,说明弹性策略已生效。
- 可选:在左侧导航栏,单击应用事件,在全部来源类型下拉列表,选择自动弹性(HorizontalPodAutoscaler),查看弹性伸缩原因。
更多操作
为应用配置弹性伸缩策略后,您可以在实例部署信息页签,查看已配置策略的详细信息。
- 登录SAE控制台。
- 在左侧导航栏,选择 ,在顶部菜单栏选择地域,然后单击具体应用名称。
- 在基本信息页面,单击实例部署信息页签,展开弹性伸缩折叠区域,然后在指定策略的操作列,按需进行启停、编辑、删除等操作。