最小实例数和快照/预留实例的差异

背景信息

函数计算默认按请求弹性存在的痛点

函数计算默认采用按请求自动弹性伸缩模式,相比虚拟机弹性伸缩和原生K8s HPA机制,具备更高的实时响应能力,可精准贴合业务实际流量波动,从而实现最大化的成本优化。

默认按请求弹性主要的痛点是存在冷启动,CPU业务平均冷启动效率百毫秒 ~ 秒级别,取决于应用本身启动速度。GPU业务平均冷启动效率分钟级别,取决于模型大小与加载速度。

产品侧解决方案演进

阶段一:预留模式

核心亮点:解决冷启动

为解决弹性实例首次处理请求的冷启动问题,函数计算引入预留模式。需要注意的是,这种场景下的预留实例即使未使用也需要按照弹性实例(活跃)的单价进行计费。

CPU业务冷启动效率达到百毫秒级,GPU业务冷启动效率达到秒级别。

阶段二:闲置开关

核心亮点:解决冷启动+成本优化

为进一步降低使用成本,预留模式支持开启闲置开关,闲置预留实例在无请求状态下将自动冻结vCPU/GPU资源,仅保留最小运行开销。此功能既解决了冷启动问题,又避免了资源空转浪费。但需要注意的是,未开启闲置模式的预留实例,即使未使用也要按照弹性实例(活跃)的单价进行计费。

阶段三:快照功能

核心亮点:GPU冷启动效率到毫秒级+成本优化+提前锁定资源

在阶段二的基础上,为确保业务刚性交付需求(如实时推理、低延迟场景),新增快照功能。通过提前锁定GPU/CPU资源,实现资源快速唤醒与模型热启动,保障服务SLA。

CPU业务冷启动效率不变,GPU业务毫秒级快照冷启动效率<=1毫秒,秒级快照冷启动效率在2秒~,具体值和模型大小相关。

阶段四:最小实例数

核心亮点:GPU冷启动效率到毫秒级+成本优化+提前锁定资源+有状态业务/后台业务支持

在阶段三的基础上,函数计算引入最小实例数策略,简化产品概念,新增有状态业务(会话亲和、长连接等)和后台业务的支持。时延敏感业务不建议最小实例数缩容到零,建议配置最小实例数 ≥ 1,为您带来以下保障:

  • 热启动:实现毫秒级热启动,保障服务不中断。

  • 刚性交付:锁定弹性资源,保障刚性交付。

  • 忙闲时智能计费:无请求或无后台任务处理时自动进入闲置计费(vCPU资源使用不收费,内存仅收1/10费用,GPU资源根据卡型不同,仅收1/8~1/5的费用),更进一步降本。

概念精简

随着函数计算新增常驻实例类型,以及会话亲和/后台任务场景中涉及的快照与弹性实例的转换行为,导致原有概念体系与业务场景产生复杂关联。为简化用户认知并降低使用门槛,函数计算对实例类型及相关概念进行了统一归类与精简。

  • 弹性实例

    按量付费模式,通过设置最小实例数≥1优化冷启动,以应对突发流量。另外,根据是否开启闲置冻结功能,细分为:

    • 弹性实例(闲置):冻结部分资源,vCPU资源使用不收费,内存仅收1/10费用,GPU资源根据卡型不同,仅收1/8~1/5的费用,既能解决冷启动问题,又避免了资源空转浪费,大大减少使用成本。

    • 弹性实例(活跃):可实现实时响应,彻底消除冷启动,但需要注意的是,即使未使用也需要按照弹性实例(活跃)的单价进行计费。

  • 常驻实例

    区别于按量付费模式,常驻实例通过提前购买常驻资源池,然后从已购买的资源池中按需分配指定规格的常驻实例给函数。

说明

下文重点介绍弹性实例的分类和介绍。

产品形态对照映射

新产品形态

快照功能(秒级快照/毫秒级快照)

预留模式(闲置预留/非闲置预留)

GPU业务

CPU业务

GPU业务

CPU业务

弹性实例(活跃)

  • 按量弹性实例

  • 基于秒级/毫秒级快照激活的弹性实例

  • 会话亲和场景下,处理请求的弹性实例

  • 后台任务场景下,处理后台任务的弹性实例

  • 按量弹性实例

  • 基于秒级/毫秒级快照激活的弹性实例

  • 会话亲和场景下,处理请求的弹性实例

  • 后台任务场景下,处理后台任务的弹性实例

  • 按量实例

  • 正在处理请求的预留实例(含闲置和非闲置)

  • 按量实例

  • 正在处理请求的预留实例

  • 未处理请求的非闲置预留实例

弹性实例(闲置)

  • 秒级快照

  • 毫秒级快照

  • 会话亲和场景下,实例保活期间的弹性实例

  • 后台任务场景下,未处理后台任务的弹性实例

  • 毫秒级快照

  • 会话亲和场景下,实例保活期间的弹性实例

  • 后台任务场景下,未处理后台任务的弹性实例

  • 未处理请求的闲置预留实例

  • 未处理请求的非闲置预留实例

未处理请求的闲置预留实例

弹性实例最小实例数

快照初始设置值

预留实例

最小实例数

弹性策略

快照弹性策略

预留实例弹性策略

最大实例数配额(弹性实例)

函数配额

价格差异

1.由闲置/非闲置预留实例演进到快照功能

快照的核心价值之一是解决低成本锁定稀缺的弹性资源,保证刚性交付的问题。大多数场景下,使用快照的费用小于原来预留实例的费用。

原因如下:

  1. 内存计费项价格下调:秒级快照/毫秒级快照的内存费用小于原闲置预留实例内存费用,CU转换系数由0.15 降为0.1,下降了1/3。

  2. 闲置实例小时单价下调:秒级快照/毫秒级快照的小时单价比原来的预留实例(开启闲置模式)便宜,GPU资源根据卡型不同,仅收1/8~1/5的费用。

  3. CU单价调整和资源包优惠:快照功能上线后,通过CU单价调整和资源包优惠、活跃率等技术手段降本的方案,能让绝大多数客户较之前的成本下降。

2.由快照功能演进到最小实例数

价格保持不变,GPU弹性实例整卡默认开启闲置,如果需要非闲置模式毫秒级启动效率,请加入钉钉用户群(钉钉群号:64970014484)获取函数计算技术支持。

如有价格疑问,请先登录价格计算器进行实际测算,如果问题仍未解决,请参考上一步联系函数计算技术支持。

控制台界面变更

  • 创建函数界面

    选择弹性实例类型后,支持配置最小实例数并选择开启闲置模式。

    image

  • 弹性策略

    通过配置定时伸缩和水位伸缩动态调整最小实例数,即系统指定时间段或指定指标利用率达到一定阈值后提升最小实例数应对负载高峰,并在负载下降到指定值后降低最小实例数,实现资源利用率的最大化。

    image

API参数映射

以下为调用PutProvisionConfig - 设置函数预留实例 API设置预留实例、快照和最小实例数的参数对比。

最小实例数

快照

预留实例

  • CPU业务(设置闲置模式最小实例数≥1):

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUfalse。

  • GPU业务(设置非闲置模式最小实例数≥1,需加入钉钉用户群64970014484申请):

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUalwaysAllocateGPUtrue。

开启毫秒级快照

  • CPU业务:

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUfalse。

  • GPU业务:

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUalwaysAllocateGPUtrue。

开启非闲置预留:

  • CPU业务:

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUtrue。

  • GPU业务:

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUalwaysAllocateGPUtrue。

  • CPU业务:不涉及

  • GPU业务(设置闲置模式最小实例数≥1):

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUalwaysAllocateGPUfalse。

开启秒级快照

  • CPU业务:不涉及

  • GPU业务:

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUalwaysAllocateGPUfalse。

开启闲置预留

  • CPU业务:

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUfalse。

  • GPU业务:

    • 设置defaultTarget为目标预留实例数。

    • 设置alwaysAllocateCPUalwaysAllocateGPUfalse。

更多信息

如果最小实例数闲置模式启动效率仍然不能满足业务需求,您可以选择购买常驻资源池(包年包月),通过购买常驻资源池,可以提前锁定指定规格的算力资源,然后按需为函数分配特定数量和卡型的常驻实例,不仅能够保障业务的稳定性,还能实现使用成本的固定和可控。考虑预算或其他问题请加入钉钉用户群64970014484联系技术支持申请使用毫秒级快照。