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

如何通过Slurm的srun、sbatch、salloc调整运行中作业的内存分配?

为运行中的Slurm作业增加内存分配

可以给运行中的Slurm作业调整内存分配,但有几个前提和具体操作方式:

核心限制

  • 集群管理员必须开启了作业资源调整的权限(比如相关QoS配置、AllowQoSOverride参数),否则无法执行调整操作。
  • 调整后的内存值不能超过作业所在分区(Partition)的单节点最大内存限制。

操作步骤

针对已启动的作业(不管是srun/salloc/sbatch提交的),使用scontrol update命令修改内存配置:

scontrol update jobid=<你的作业ID> MinMemoryNode=<新内存值>

举个例子,把作业ID为12345的任务内存从8G调整到16G:

scontrol update jobid=12345 MinMemoryNode=16G

额外说明

  • 如果作业运行在多节点集群,MinMemoryNode是单节点的内存配额,若需要按CPU核心分配,可替换为MinMemoryCPU参数(比如MinMemoryCPU=4G表示每个核心分配4G内存)。
  • 若集群支持动态资源调整,修改后无需重启作业即可生效;但如果当前节点没有多余空闲内存,调整会失败,此时只能重新提交作业并设置更大的内存。

避免内存不足的小技巧

  • 提交作业前可先用小测试任务跑一轮,之后用seff <作业ID>查看实际内存消耗,再给正式作业设置合理的内存参数。
  • 可以用--mem-per-cpu替代--mem,按CPU核心维度分配内存,比整节点分配更精准。
  • 部分集群允许--mem=0,让Slurm自动分配当前节点的全部可用内存(需确认集群规则)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:40:16