You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Foundry资源队列如何为Spark作业分配vCPU资源?含实例疑问

Foundry资源队列的vCPU分配逻辑解析

执行器环境配置

配置项值
adaptiveExecutorEnabledtrue
driverCores1
dynamicAllocationEnabledtrue
dynamicAllocationMaxExecutors16
executorCores2
executorRequestCores1.2

核心问题解答

1. 显示的21是执行器还是核心数?

是vCPU核心总数,不是执行器数量。其中包含两部分:任务driver进程占用的1个核心(对应driverCores=1),以及所有运行中执行器的核心占用总和。

2. 为何核心数是21而非配置的16?

dynamicAllocationMaxExecutors=16是允许启动的最大执行器数量,不是核心数上限。核心总数的计算逻辑是:
核心总数 = driver核心数 + 运行中执行器数量 × 单执行器实际占用核心数

结合你的配置,每个执行器的核心占用可以在executorRequestCores=1.2(初始申请值)到executorCores=2(最大上限)之间动态调整,同时执行器数量会根据任务负载增减(不超过16)。你看到的21个核心,比如可能是10个执行器各占用2核心,加上driver的1核心,10×2+1=21,完全符合配置规则。

3. 资源队列的实际运作:固定还是动态分配?

是动态分配+弹性释放的模式,具体流程:

  • 任务启动时,先申请driver的1个核心,再根据初始任务量,以executorRequestCores=1.2的规格启动少量执行器;
  • 任务执行过程中,若发现有未处理的任务积压,Foundry会自动增加执行器数量(不超过16个),同时每个执行器会根据负载扩展核心占用到executorCores=2的上限;
  • 当执行器空闲时,Foundry会逐步释放空闲的执行器,或降低其核心占用,把资源归还到队列中,供其他任务使用。

资源队列不会固定锁定21个vCPU,而是完全根据任务的实时需求弹性调整,始终在配置的执行器数量上限和核心范围内运作。

内容的提问来源于stack exchange,提问作者user5233494

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 14:47:20