Serverless 资源组弹性计划在执行过程中,会经历从初始化到扩容、再到缩容的完整生命周期状态流转。本文深入介绍弹性计划的七种生命周期状态、统一资源池机制、原子化伸缩设计、缩容安全机制,以及扩容超时、缩容超时和强制停止等特殊场景的处理逻辑。弹性计划的功能概述、操作步骤和计费规则,参见Serverless资源组弹性计划。
生命周期状态
当创建好配置方案以及时间计划后,弹性计划的生命周期状态共包含以下七种状态。其中正常的生命周期状态链路为:。而扩容超时与缩容超时为两种异常超时状态。
扩容超时,缩容超时,缩容成功均为弹性计划生命周期的终态,一旦进入任一状态,当日进行的该次弹性计划即终止执行,不再发生状态迁移。
状态 | 状态说明 |
初始化中 | 计划起始时间前30分钟,系统自动进入初始化阶段。此期间对弹性计划的修改(如调整弹性CU量、时间范围等)将暂不生效,待下一次计划周期启动时应用。 |
扩容中 | 自设定的计划起始时间起,系统持续尝试分配弹性CU,直至成功达到配置的弹性CU量,或超出该计划的计划结束时间。若在计划时间窗口内完成扩容,则进入“扩容成功”状态;否则转入“扩容超时”。 |
扩容成功 | 系统已成功分配所配置的弹性CU,资源组获得对应计算能力。 重要 弹性扩容资源仅限于数据计算和数据集成配额使用,不能用于数据服务、个人开发环境、大模型服务等场景。 |
扩容超时 | 扩容超时是指弹性计划在指定时间窗口内未能成功完成弹性CU分配。根据触发原因,可分为以下两类场景:
说明 关于扩容超时的进一步举例说明,可以参见扩容超时&缩容超时。 |
缩容中 | 自计划结束时间开始,系统将自动尝试缩容以释放弹性资源。在缩容过程中,资源组停止为新任务分配CU计算资源(此时新任务会处于等待资源调度状态),并等待正在运行的任务自然结束。当资源组总CU使用量≤预留规格(CU)时,系统将整块释放弹性CU。 |
缩容成功 | 资源组总使用量已稳定回落至预留规格(CU)以内,所有弹性CU已完全释放。Serverless资源组恢复使用预留CU提供服务,并开始分配任务。 |
缩容超时 | 当弹性计划B已进入“缩容中”状态,但因资源组总CU使用量持续高于预留规格,导致弹性CU无法整块释放;此时,若后续弹性计划C成功接管资源(即其扩容操作完成且开始生效),系统将立即终止计划B的缩容流程,并将其生命周期状态更新为缩容超时。 该状态表明:计划B未能在其计划结束时间后完成弹性CU回收,其资源管理职责已由新接管的计划C承接。 说明 关于缩容超时的进一步举例说明,可以参见扩容超时&缩容超时。 |
统一资源池机制
在弹性扩容成功后,系统将弹性CU与预留CU统一纳入资源组的总计算能力池,二者在底层调度和资源分配层面不作区分。即:
资源组对外呈现的总CU规格 = 预留计算资源(CU)+ 已生效的弹性CU;
任务调度按需从该统一资源池中分配计算单元,不感知也不限制任务必须运行在“弹性CU”或“预留CU”上——所有CU具备完全等效的计算能力与服务保障。
在缩容阶段,系统通过实时监控资源组总CU使用量(即当前正在被任务占用的CU总数),并结合预留规格,推导弹性CU的实际占用情况:
弹性CU实际使用量 = max(0, 资源组总CU使用量 − 预留计算资源(CU))
该公式在不同场景下的作用如下:
资源组总CU使用量 | 弹性CU使用量 | 说明 |
≤ 预留规格 | 0 | 满足整块释放条件,系统可回收全部弹性CU。 |
> 预留规格 | 总使用量 − 预留规格 | 超出部分由弹性CU承担,缩容期间系统据此持续计费,直至缩容完成。 |
资源伸缩机制
弹性CU以配置方案中定义的完整CU数量为单位,进行整块分配或释放,不支持碎片化伸缩。
操作 | 系统行为 |
扩容 | 系统一次性初始化并分配全部弹性CU。 |
缩容 | 当资源组总CU使用量≤预留规格(CU)时,系统整块释放全部弹性CU。 |
缩容安全机制
为最大程度保障任务稳定运行、杜绝因资源释放导致的任务中断或失败,Serverless资源组的缩容过程严格遵循以下安全机制:
自计划结束时间起,资源组停止为新任务分配CU计算资源,新任务会处于等待调度资源的状态。
到达计划结束时间时,若资源组中仍有任务正在运行,系统不会强制终止这些任务,而是允许其继续执行直至自然完成。
在缩容过程中,系统持续监控资源组总CU使用量,仅资源组总CU使用量≤预留规格(CU)时,系统才开始对弹性CU进行整块回收。
特殊场景说明
扩容超时&缩容超时
场景描述:
资源组预留规格为10CU,现有3个弹性计划如下:
弹性计划 | 扩容规格 | 计划时间范围 |
弹性计划A | 30CU | 9:00-11:00 |
弹性计划B | 20CU | 12:00-14:00 |
弹性计划C | 8CU | 15:00-17:00 |
下文通过示意图+时序表格,直观呈现弹性计划A/B/C在多阶段重叠场景下对应的生命周期状态演进过程,帮助您深入理解扩缩容协同机制与超时判定逻辑。
时间 | 资源组总CU使用量(假定值) | 预留规格 | 弹性CU实际使用量 | 系统行为与状态 |
9:00 | 28CU | 10CU | 18CU | 计划A启动扩容,系统分配30弹性CU。 |
11:00 | 40CU | 10CU | 30CU | 计划A开启自动缩容,但资源组总CU使用量>预留规格,计划A显示状态为缩容中。 |
12:00 | 38CU | 10CU | 28CU |
|
14:00 | 32CU | 10CU | 22CU |
|
15:00 | 22CU | 10CU | 12CU |
|
16:00 | 18CU | 10CU | 8CU |
|
17:00 | 10CU | 10CU | 0 | 计划C开启自动缩容,并缩容成功。 |
强制停止
您可在弹性计划处于以下状态时执行强制结束操作,系统将按如下规则响应:
当前状态 | 强制停止行为 | 最终状态 |
初始化中或扩容中 | 立即终止当前扩容流程,弹性CU不会被分配。计划结束时间更新为强制停止操作的时间。 |
|
扩容成功 | 触发提前缩容:系统立即停止为新任务分配CU,等待运行中任务自然结束。当总CU使用量≤预留规格后,整块释放弹性CU。计划结束时间更新为强制停止操作的时间。 说明 执行强制停止操作后,若当前有任务使用扩容出来的资源(即弹性CU),该计划会显示 |
|
操作步骤
根据时间计划的不同状态,强制停止功能提供两个不同的操作入口:
针对在初始化中的计划,其时间计划状态显示为待生效。若要强制停止:
在分时弹性页签,若要强制停止初始化中的计划,在操作列,可点击对该计划进行强制停止。
针对处于扩容中或扩容成功状态的计划,其时间计划状态显示为生效中。若要强制停止:
在分时弹性页签,针对生效中的弹性时间计划,在操作列,可点击对该计划进行强制停止。
举例说明
在
扩容超时(强制结束)场景下,强制停止将立即终止当前扩容流程,弹性CU不会被分配。计划的“计划结束时间”将更新为用户执行强制停止操作的精确时刻。如举例中:弹性计划原定的时间范围为12:00-13:00。该计划在11:30自动开始进行初始化,用户在11:40时执行了强制停止操作。则该计划的计划结束时间相应更新为11:40。
在
缩容成功(强制结束)场景下,系统将立即触发提前缩容,此时,计划的“计划结束时间”将更新为用户执行强制停止操作的精确时刻,计划的“实际结束时间”为缩容成功的精确时刻。如举例中:弹性计划原定的时间范围为11:00-12:00。如果在11:42执行强制停止操作,则该计划的“计划结束时间”立即更新为11:42。然而,由于此时仍有任务运行在弹性CU上(即资源组总CU使用量高于预留规格),系统无法立即回收弹性资源。直至12:59分所有任务结束,弹性资源才得以完全释放,此时该计划的“实际结束时间”将被记录为12:59。
> 禁用