资源组弹性计划进阶

更新时间:
复制为 MD 格式

Serverless 资源组弹性计划在执行过程中,会经历从初始化到扩容、再到缩容的完整生命周期状态流转。本文深入介绍弹性计划的七种生命周期状态、统一资源池机制、原子化伸缩设计、缩容安全机制,以及扩容超时、缩容超时和强制停止等特殊场景的处理逻辑。弹性计划的功能概述、操作步骤和计费规则,参见Serverless资源组弹性计划

生命周期状态

当创建好配置方案以及时间计划后,弹性计划的生命周期状态共包含以下七种状态。其中正常的生命周期状态链路为:初始化中 > 扩容中 > 扩容成功 > 缩容中 > 缩容成功。而扩容超时缩容超时为两种异常超时状态。

扩容超时缩容超时缩容成功均为弹性计划生命周期的终态,一旦进入任一状态,当日进行的该次弹性计划即终止执行,不再发生状态迁移。

image

状态

状态说明

初始化中

计划起始时间30分钟,系统自动进入初始化阶段。此期间对弹性计划的修改(如调整弹性CU量、时间范围等)将暂不生效,待下一次计划周期启动时应用。

扩容中

自设定的计划起始时间起,系统持续尝试分配弹性CU,直至成功达到配置的弹性CU量,或超出该计划的计划结束时间。若在计划时间窗口内完成扩容,则进入“扩容成功”状态;否则转入“扩容超时”。

扩容成功

系统已成功分配所配置的弹性CU,资源组获得对应计算能力。

重要

弹性扩容资源仅限于数据计算数据集成配额使用,不能用于数据服务个人开发环境大模型服务等场景。

扩容超时

扩容超时是指弹性计划在指定时间窗口内未能成功完成弹性CU分配。根据触发原因,可分为以下两类场景:

  • 通用场景:直到设定计划结束时间,申请弹性资源仍未完成。

    重要

    最佳实践:弹性计划创建后需经过系统调度、资源初始化等流程,建议计划提交时间不晚于计划开始时间前3小时,以预留必要的时间处理窗口。

  • 特殊场景:当弹性计划B启动时,若前序弹性计划A仍处于缩容过程中,且当前资源组的实际使用量>资源组预留规格 + 计划B弹性规格,则计划B无法成功接管资源。

    若在计划B计划结束时间之后,资源组使用量仍高于其扩容后的总规格(即资源组预留规格 + 计划B弹性规格),则计划B将被标记为“扩容超时”。

说明

关于扩容超时的进一步举例说明,可以参见扩容超时&缩容超时

缩容中

计划结束时间开始,系统将自动尝试缩容以释放弹性资源。在缩容过程中,资源组停止为新任务分配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在多阶段重叠场景下对应的生命周期状态演进过程,帮助您深入理解扩缩容协同机制与超时判定逻辑。

image

时间

资源组总CU使用量(假定值)

预留规格

弹性CU实际使用量

系统行为与状态

9:00

28CU

10CU

18CU

计划A启动扩容,系统分配30弹性CU。

11:00

40CU

10CU

30CU

计划A开启自动缩容,但资源组CU使用量>预留规格,计划A显示状态为缩容中

12:00

38CU

10CU

28CU

  • 当前资源组CU使用量>资源组预留规格 + 计划B弹性规格,计划B无法成功接管资源。

  • 由于弹性计划B未能成功接管资源,计划A仍处于缩容中,从而继续承担超出预留规格的计算负载,确保任务平稳运行。

14:00

32CU

10CU

22CU

  • 直至弹性计划B计划结束时间,资源组CU使用量>预留规格+计划B弹性规格,计划B标记为扩容超时

  • 计划A仍处于缩容中

15:00

22CU

10CU

12CU

  • 当前资源组CU使用量>资源组预留规格 + 计划C弹性规格,计划C无法成功接管资源。

  • 计划A仍处于缩容中

16:00

18CU

10CU

8CU

  • 当前资源组CU使用量=资源组预留规格 + 计划C弹性规格,计划C成功接管资源。

  • 计划A由于C的成功接管而标记为缩容超时

17:00

10CU

10CU

0

计划C开启自动缩容,并缩容成功

强制停止

您可在弹性计划处于以下状态时执行强制结束操作,系统将按如下规则响应:

当前状态

强制停止行为

最终状态

初始化中扩容中

立即终止当前扩容流程,弹性CU不会被分配。计划结束时间更新为强制停止操作的时间。

扩容超时(强制结束)

扩容成功

触发提前缩容:系统立即停止为新任务分配CU,等待运行中任务自然结束。当总CU使用量≤预留规格后,整块释放弹性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。