配置机队规模调整
创建机队时,请使用扩展参数来控制您的 Code Engine 机队部署多少个工作者,以及它如何应对任务负载的变化。
所有缩放参数均为可选,可在创建车队时进行设置。
Code Engine CLI 中的扩展参数
要创建一个车队,请使用 ibmcloud ce fleet run 或 ibmcloud ce fleet create 命令。 它支持以下舰队规模调整选项。 有关所有可用命令选项的完整列表,请参阅 CLI 参考文档。
--scale-max-
所有工作进程中并发任务槽总数的上限。 工作进程的扩展能力最多可支持此数量的并发任务。 默认值为
10。 --scale-min-
即使没有待处理或正在运行的任务,系统也会始终预留的最小并发任务槽位数量。 提供此容量的 worker 始终处于活动状态,且绝不会被自动缩减。
根据此设置,一个拥有活跃工作人员但无待处理或正在运行任务的车队,其状态为 “待机”。
必须小于或等于
--scale-max。 默认值为0。 --scale-spare-
在当前运行任务数量之上保留的空闲并发任务槽位数量。 当所有工人都在忙碌时,车队会增派工人以恢复备用缓冲量——最多可达
--scale-max。 在仍有闲置算力时,新任务会立即开始处理,无需等待新工作者加入。必须小于或等于
--scale-max。 默认值为0。 --scale-down-delay-
指定工作进程在完成最后一项任务后,Code Engine 缩减其规模之前,该工作进程将继续运行多长时间。 上一项任务在延迟窗口内完成的工人,会在新任务一到时立即接手。
请指定一个正整数,表示秒数。 默认值为
0(一旦不再需要,工作进程会立即缩减)。
Code Engine 控制台中的扩展参数
- 最大容器槽位数
-
所有工作进程中并发任务槽总数的上限。 工作进程的扩展能力最多可支持此数量的并发任务。 默认值为
10。 - 最小集装箱舱位数
-
即使没有待处理或正在运行的任务,系统也会始终预留的最小并发任务槽位数量。 提供此容量的 worker 始终处于活动状态,且绝不会被自动缩减。
根据此设置,一个拥有活跃工作人员但无待处理或正在运行任务的车队,其状态为 “待机”。
必须小于或等于“最大容器槽位数”。 默认值为
0。 - 备用集装箱槽位
-
在当前运行任务数量之上保留的空闲并发任务槽位数量。 当所有工人都在忙碌时,车队会增派工人以恢复备用缓冲量——最多可达“最大集装箱插槽数”。 在仍有闲置算力时,新任务会立即开始处理,无需等待新工作者加入。
必须小于或等于“最大容器槽位数”。 默认值为
0。 - 缩放延迟
-
指定工作进程在完成最后一项任务后,Code Engine 缩减其规模之前,该工作进程将继续运行多长时间。 上一项任务在延迟窗口内完成的工人,会在新任务一到时立即接手。
请指定分钟数。 默认值为
0(一旦不再需要,工作进程会立即缩减)。
工作负载模式及相关参数
应使用哪些参数,取决于任务的生成方式、您的延迟要求以及车队配置的稳定性。
Code Engine CLI 中的单次批处理工作负载
您在开始时就已知晓所有任务,在创建车队时将其分配给车队,当最后一个任务完成后,车队任务即告结束。 这是最简单的模型,除了将 --scale-max 设置为控制并行运行的任务数量外,无需进行任何特殊的扩展配置。 当您需要为一批任务配置专用机队时,请使用此方法。
相关选项: --scale-max
Code Engine 控制台中的单次批处理工作负载
您在开始时就已知晓所有任务,在创建车队时将其分配给车队,当最后一个任务完成后,车队任务即告结束。 这是最简单的模型,除了将 “最大容器槽位数” 设置为控制并行运行的任务数量外,无需进行任何特殊的扩展配置。 当您需要为一批任务配置专用机队时,请使用此方法。
相关参数: 最大集装箱位数
Code Engine CLI 中的计划批处理工作负载
您维持一支车队,并按计划添加新的一批任务。 在批次之间,车队没有待处理任务。 批次之间的间隔是可预测的,且时间足够长,因此无需特意为工人保暖,所以使用 --scale-min、--scale-spare 或 --scale-down-delay 都没有实际意义。 所有批次的船队配置均保持稳定。
相关选项: --scale-max
Code Engine 控制台中的计划批处理工作负载
您维持一支车队,并按计划添加新的一批任务。 在批次之间,车队没有待处理任务。 批次之间的间隔时间可预测且足够长,因此没有必要为工人保暖,所以使用 “最小容器槽位”、“备用容器槽位”或 “缩减延迟” 均无益处。 所有批次的船队配置均保持稳定。
相关参数: 最大集装箱位数
Code Engine CLI 中的连续、对延迟敏感的工作负载
任务会在一天中的不同时间以不可预测的方式出现——由用户操作、传感器读数或其他实时事件触发。 如果每次有任务到达时都要等待一个新进程启动,将会导致无法接受的延迟。 相反,应将工作队配置为维持一支待命的“温热”工作者队伍,以便任务能够立即启动。
相关选项: --scale-max、--scale-min、--scale-spare、--scale-down-delay
- 使用
--scale-max来定义可分配的容器槽位的最大数量。 您的机队将根据工作负载需求,扩展至此并发限制。 - 使用
--scale-min可确保基础工作进程池始终处于运行状态,即使队列中没有任务时也是如此。 当流量可能在一段时间内降至零,但您仍希望流量恢复时能立即启动时,请使用此选项。 - 使用
--scale-spare,可确保预留的空闲任务槽位数量多于当前正在运行的任务数量。 当任务到达时,处理工作会立即在已运行的工作进程上开始,同时任务集群会在后台分配更多工作进程以补充空闲算力。 - 使用
--scale-down-delay可以防止工人在最后一个任务完成后立即缩减规模。 当任务间歇性到达且彼此之间存在短暂间隔时,此设置非常有用,它能确保工作者保持待命状态,从而避免不必要的缩减和扩容循环。 保持工作进程的运行状态可以缩短任务启动延迟,最大限度地减少工作进程的初始化开销,并降低反复配置新工作进程的成本。
Code Engine 控制台中对延迟敏感的连续工作负载
任务会在一天中的不同时间以不可预测的方式出现——由用户操作、传感器读数或其他实时事件触发。 如果每次有任务到达时都要等待一个新进程启动,将会导致无法接受的延迟。 相反,应将工作队配置为维持一支待命的“温热”工作者队伍,以便任务能够立即启动。
相关参数: 最大容器槽位数、最小容器槽位数、备用容器槽位数、缩容延迟
- 使用 “最大容器槽位数”来定义可配置的容器槽位最大数量。 您的机队将根据工作负载需求,扩展至此并发限制。
- 使用 “最小容器槽位”来确保基础工作进程池始终处于运行状态,即使队列中没有任务也是如此。 当流量可能在一段时间内降至零,但您仍希望流量恢复时能立即启动时,请使用此选项。
- 利用备用容器槽位,确保可用的空闲任务槽位数量多于当前正在运行的任务数量。 当任务到达时,处理工作会立即在已运行的工作进程上开始,同时任务集群会在后台分配更多工作进程以补充空闲算力。
- 使用 “缩减延迟”功能,可防止工作者在最后一个任务完成后立即缩减规模。 当任务间歇性到达且彼此之间存在短暂间隔时,此设置非常有用,它能确保工作者保持待命状态,从而避免不必要的缩减和扩容循环。 保持工作进程的运行状态可以缩短任务启动延迟,最大限度地减少工作进程的初始化开销,并降低反复配置新工作进程的成本。