最近更新时间:2022-08-31 20:41:17
云函数的算力资源由底层具备弹性扩缩能力的函数实例构成,函数启动和弹性伸缩的响应效率影响着业务并发的执行效率。为了提升函数在冷启动和并发波动场景的执行效率,金山云云函数提供关于预留实例和弹性策略的灵活配置。您可通过弹性管理基础配置和多种自定义弹性策略,定义一套符合业务场景需求的弹性规则。
冷启动指的是函数生命周期中,函数实例被完全释放后,新的函数实例第一次被调用后启动的过程。此过程包含函数调用链路中函数实例调度、代码下载、函数实例启动、运行时初始化、代码初始化等环节带来的耗时。
如下图所示,如请求2在函数实例被释放前发生,由于函数执行环境已经准备好,请求2将无需等待函数实例的冷启动时间,在已有的函数实例环境中被执行。如请求3在函数实例被释放后发生,函数执行环境被释放,请求3需等待一个新的函数实例的冷启动时间。
为解决冷启动带来的延迟毛刺,您可以从弹性配置上降低冷启动发生概率,比如:
配置预留实例:预留实例将提前准备好函数执行环境,且不会被云函数平台主动回收。当请求发生时,调用请求将优先调度至预留实例,降低冷启动的发生次数。
配置定时弹性策略:对于有时间规律的业务场景,定时弹性策略可以帮助预热函数,减少冷启动的发生。
函数的生命周期中,调用请求量通常处于波动状态。处理函数调用请求时,云函数会优先调度已有的可用实例,在当前实例不足以处理调用请求时扩容新的实例以进行补充,同时在请求减少时缩容冗余的实例以节省资源消耗。金山云云函数为弹性管理提供灵活的配置,您可以通过基础配置和弹性策略两个模块,为函数配置弹性范围内的预留和弹性策略。
纯净模式