弹性管理基础配置
最小实例数-最大实例数:触发弹性后,函数实例将在最小实例数和最大实例数范围内进行扩缩容。
注:因在账号下地域维度存在函数实例总数限制,您可结合业务并发需求和各函数间资源分配规划,为函数配置实例数上限。
预留实例数:保持常驻的实例数量。此部分实例将按配置预先启动,且云函数平台不会主动回收这些实例,降低冷启动耗时。预留实例数范围需属于[最小实例数,最大实例数],默认值为0。
缩容稳定窗口期:为保证业务执行的稳定性,在执行弹性伸缩动作后,指定窗口时间内不会再进行缩容操作,缩容稳定窗口期默认值为30s。
冷却时间:为提升资源利用率,无弹性伸缩策略命中时,等待指定冷却时间后,实例数缩减为预留实例数。冷却时间默认值为150s。
弹性策略
云函数提供了多种弹性策略,应用于不同函数类型和弹性场景:
- 队列堆积指标:事件类函数的默认弹性策略,与事件类触发器同步生效/销毁。在事件类请求中,根据队列堆积度判断在当前函数实例的处理能力下异步事件在队列中的积压程度,达到指标设定值时自动扩缩容。
- 并发指标:HTTP请求类函数的默认弹性策略,与HTTP触发器同步生效/销毁。在HTTP请求中,根据HTTP请求并发度判断当前函数并发处理能力下是否需要扩缩容。
- 定时弹性伸缩:定时弹性策略不依赖函数类型/触发器,可使函数实例在指定时间范围,从0扩容至期望实例数。
- 内存指标弹性伸缩:内存指标弹性策略不依赖函数类型/触发器,除将请求处理情况作为弹性伸缩指标,函数实例的内存使用量/使用率也可以反映当前实例处理能力是否充足,达到指标设定值时自动扩缩容。
事件函数:队列堆积指标
当函数配置事件类触发器时,函数将默认创建一个持续生效的队列堆积指标策略:在当前函数处理能力下,队列堆积度将以80%为临界值进行扩缩容。其中可配置参数如下:
- 单实例吞吐量:单实例吞吐量展示了单实例并发处理请求的能力,默认值为函数的单实例并发数。
- 队列堆积度:队列堆积度反映了当前函数实例处理请求时事件的堆积程度,事件的入队速率与消费速率的差值越大,队列堆积度越高。在单实例吞吐量稳定的基础上,函数将通过扩容实例的方式提升消费速率,您可以通过设置队列堆积度期望值,来控制函数实例的扩容阈值。在一个扩缩容周期内,当事件的入队速率较高,使队列堆积度超出期望值时,将触发函数实例扩容,反之则触发函数实例缩容。
算法示例:目标实例数=当前函数总实例数×当前队列堆积度÷队列堆积度期望值
如队列堆积度期望值配置为50%,当前函数实例数为20、队列堆积度为80%,则扩容后目标实例数=20×80÷50=32
队列堆积指标作为事件类触发器的默认指标,生效时间范围默认为持续生效,仅支持随触发器删除。
HTTP函数:并发指标
当函数配置HTTP请求触发器时,函数将默认创建一个持续生效的并发指标触发器:在函数的并发请求数增加/减少至300次每分钟时,对函数实例进行扩缩容。您可对默认的并发请求数进行调整:
- 并发请求数:您可设置不同单位时间内(支持分钟/秒)并发请求数阈值。当业务请求量不断增加,触发扩容阈值时函数开始扩容,请求量减少至低于阈值且满足缩容稳定窗口期时函数开始缩容。
并发指标作为HTTP触发器的默认指标,生效时间范围默认为持续生效,仅支持随触发器删除。
定时弹性伸缩
定时弹性伸缩不依赖触发器,支持函数实例从0开始扩容,适用于有明确潮汐效应的业务场景。
- 定时类型:支持每天,每周一-周五,每周六-周日的指定时间范围内重复执行,也支持自定义模式选择“xx年xx月xx日xx时xx分xx秒”特定时间范围内执行。
- 时间范围:定时类型选择为周期重复执行时,时间范围支持配置至“xx时xx分xx秒”;定时类型选择为自定义模式时,时间范围支持配置至“xx年xx月xx日xx时xx分xx秒”。
- 期望实例数:配置时间范围内的期望实例数,数值范围需属于[最小实例数,最大实例数]。
内存指标弹性伸缩
内存指标弹性伸缩需配置触发器才生效,不依赖触发器类型。对于内存敏感型的任务,您可配置内存指标类伸缩策略,根据内存使用量/使用率来进行函数实例的扩缩容。
- 内存指标:支持选择内存使用率/内存使用量指标,为函数配置内存使用率/使用量阈值。参考为函数配置的实例规格,此处内存使用量配置不能大于实例规格。
- 时间范围:配置内存指标策略的生效时间,支持选择持续生效或自定义时间。
算法示例:目标实例数=当前函数总实例数×当前内存使用率÷内存使用率阈值
如内存使用率阈值配置为80%,当前函数实例数为20、内存使用率为20%,缩容后目标实例数=20×20÷80=5
注意:因内存指标特殊性,配置后函数将在最小实例数和最大实例数范围内扩缩容,不会缩容至0。
多弹性策略组合
基于函数请求类型和业务场景,您可以组合使用多种弹性策略,使函数具备灵活的伸缩性。典型的使用场景包括但不限于:
- 配置预留实例及定时弹性策略:在有明确高峰时段的业务场景,配置预留实例用于处理业务低峰期发生的少量请求,高峰期根据定时弹性策略提前扩容函数实例以应对突增请求,保证函数在低峰期的冷启动效率和高峰期的处理能力。
- 配置默认弹性策略及内存指标弹性策略:函数将根据对应请求类型的默认策略进行扩缩容,除了根据队列堆积度和并发请求数进行扩缩容外,在函数实例的内存使用量/使用率超出阈值时也进行扩缩容,保证函数实例的内存资源充足。
在多个弹性策略同时命中时,函数实例将以扩缩容后实例数最多的弹性策略为准,执行扩缩容动作。