实例伸缩行为
当请求达到时,函数计算会优先使用已有的实例。当请求量超过可用实例的最大负载时,系统将创建额外的实例来处理更多的请求。随着请求量的增加,系统将持续扩容至满足业务需求,或达到设定的总实例数上限。
为函数配置预留实例后,总有一些实例处于就绪状态,有效避免实例冷启动带来的请求延时问题。当函数调用请求增加时,按量模式和预留模式实例的伸缩行为如下。
按量模式实例伸缩
函数计算将在以下情形下遭遇流控:
- 请求量突增,扩容速度跟不上时
- 请求量要求的实例数超过最大允许实例数时
- 情形①:请求量不至于过大,在达到突增实例数前,系统可以快速创建实例,此过程没有流控错误,但是存在冷启动。
- 情形②:请求量激增,达到突增实例数后,系统扩容速度受限,创建实例速度变慢,部分请求会收到流控错误。
- 情形③:实例数超过最大允许实例数限制后,部分请求收到流控错误。
预留模式实例伸缩
当大量请求突然涌入时,短时间内大量实例扩容速度受限,流控生效将导致部分请求失败,实例冷启动造成的请求延迟增加也会影响用户体验。为避免这些问题,您可以使用函数计算的预留模式,即提前准备好函数实例。
- 情形①:当请求量较低时,预留实例足以处理所有的请求,此阶段没有冷启动,也没有流控。
- 情形②:当请求量比较高时,预留实例只能处理部分请求,按量实例会由系统自动扩容出来,处理剩余的请求。此阶段按量实例存在冷启动。
预留实例定时伸缩
适用场景
函数业务流量具有明显的周期性活动或可预测的流量高峰。
配置示例
一个典型的定时伸缩场景是:在函数调用流量高峰到来前(时刻t1),通过一个定时配置将预留实例配置在较高的水位;当流量减小后(时刻t2),通过另一个定时配置将预留实例配置在较低的水位。如下图所示。
给函数配置预留实例,依次进入高级功能-弹性管理-预留实例数策略,点击创建预留实例数策略, 详情请参考配置预留实例数。
最大可响应并发值
根据实例并发数的不同,函数实例可响应的最大并发值计算方式如下:
- 单实例单并发
最大可响应并发值 = 函数实例数量 - 单实例多并发
最大可响应并发值 = 函数实例数量 × 单实例并发度
相关文档
按量模式和预留模式实例的基本概念及计费方式,请参考实例类型及使用模式。
您可以通过配置并发实例数限制某个函数的实例数,具体请参考并发实例数上限配置。
如果您想提高预留实例使用率,减少资源浪费,请参考配置预留实例数。