配置弹性实例延迟释放

针对后台异步任务场景,例如实例每次处理完请求后需要执行日志上传、数据同步等任务,推荐使用实例延迟释放功能,避免任务中断造成数据丢失。设置实例延迟释放时间后,在此时间段内,系统根据vCPU利用率自动维持弹性实例活跃状态、切换至闲置状态或超时后无请求自动销毁,详细如下。

  • 活跃状态

    • 在设置的延迟释放时间段内,请求结束后,若实例vCPU利用率 > 系统阈值,实例将处于活跃状态。

    • 按照弹性实例(活跃)单价计费。

    • 新请求到达时,可实时处理。

  • 闲置状态

    • 在设置的延迟释放时间段内,请求结束后,若实例vCPU利用率 < 系统阈值,实例自动转为闲置状态。

    • 仅收取基础实例保活费用,按照弹性实例(闲置)单价计费,即vCPU不计费,详见计费概述

    • 新请求到达时,快速唤醒,实现毫秒级热启动。

  • 实例销毁

    • 超过设置的延迟释放时间后,如果没有新请求,实例销毁。

    • 实例销毁后停止计费。

    • 实例销毁以后,如果设置的最小实例数0,会存在冷启动,如果设置的最小实例数>0,则可以消除冷启动。

使用限制

  • 仅支持Web函数。

  • 如果设置的最小实例数>0,且未配置最小实例数的弹性策略,则配置的弹性实例延迟释放功能不生效。

实例延迟释放与会话亲和功能对比

对比项

延迟释放

会话亲和

延迟释放+会话亲和

适用场景

后台业务

会话长连接业务

后台业务+会话长连接业务

实例保活时长限制

60分钟>设置延迟释放时长>5分钟

取单个实例上所有Session设置的Session Idle时长的最大值

以下两个时长取最大值:

请求结束后是否保有最小实例数

计费说明

重要
  • 如果设置的最小实例数>0,且未配置最小实例数的弹性策略,以下两种场景下配置的弹性实例延迟释放功能不生效。此时,计费规则同最小实例数,即有请求时,按照弹性实例(活跃)单价计费,无请求时,按照弹性实例(闲置)单价计费。

  • 如果设置的最小实例数>0,且配置了最小实例数的弹性策略,计费规则同以下两种场景。

仅设置延时释放功能

场景示例

设置实例延迟释放时间为9分钟

计费时段

如下图所示,在这9分钟时间范围内,根据执行请求的情况,分以下三个计费时段;9分钟之后,无新请求时,此实例被释放。

  • 00:00~00:05:处理请求期间,按照弹性实例(活跃)单价计费

  • 00:05~00:07:请求结束,系统监测到vCPU使用率>系统阈值,按照弹性实例(活跃)单价计费

  • 00:07~00:09:请求结束,系统监测到vCPU使用率<系统阈值,按照弹性实例(闲置)单价计费

image

设置延时释放+会话亲和功能

场景示例

  • 设置实例延迟释放时间为9分钟

  • 开启HeaderField亲和,且Session Idle时长值为15分钟

    本文以HeaderField亲和为例,关于会话亲和的类型、功能介绍和计费说明,请参见配置会话亲和

计费时段

取实例延迟释放时间9分钟与HeaderField亲和功能设置的Session Idle时长二者中的最大值15分钟,如下图所示,在这15分钟时间范围内,根据执行请求的情况,分三个计费时段(同仅设置延时释放功能场景),15分钟之后,无新请求时,此实例被释放。

需要注意的是,15分钟之后,系统会自动创建新的实例用于保证亲和性,实例个数取决于设置的最小实例数。

image

操作实践

步骤一:配置弹性实例延迟释放

支持新建函数的同时配置弹性实例延迟释放功能,也可以参见以下步骤为已有函数配置弹性实例延迟释放功能。

  1. 登录函数计算控制台,在左侧导航栏,选择函数管理 > 函数列表

  2. 在顶部菜单栏,选择地域,然后在函数列表页面,单击目标函数。

  3. 选择函数详情 > 配置页签,单击下方高级配置右侧的编辑

  4. 高级配置面板,单击展开延时释放弹性实例区域,开启延时释放弹性实例功能开关,设置延迟释放时间,然后单击部署

(可选)步骤二:配置会话亲和

本文以HeaderField亲和功能为例,具体操作,请参见会话亲和配置实践

步骤三:验证结果

  1. 在目标函数的详情页面,选择代码页签,然后单击测试函数

  2. 函数执行成功后,选择实例页签,通过观察实例的运行周期判断延迟释放功能是否已生效。