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

如何限制Slurm指定分区中用户运行作业的总内存使用量?

Slurm分区用户作业内存限制问题解答

需求

限制指定Slurm分区中用户运行作业的内存使用量。

已完成操作

  • 定义QOS:
    Name     MaxTRESPU                Flags
    ---------- ------------- --------------------
        normal
        memlim   mem=750000M          DenyOnLimit
    
  • 将QOS关联至目标分区:
    PartitionName=testpartition Nodes=node[01-03] MaxTime=INFINITE State=UP qos=memlim
    

问题现象

执行简单作业提交命令:

srun -p testpartition hostname

通过squeue查看用户作业状态,结果如下:

# squeue -u testuser
             JOBID PARTITION     NAME       USER ST       TIME  NODES NODELIST(REASON)
          38855732      nrpe hostname   testuser PD       0:00      1 (QOSMaxMemoryPerUser)

疑问解答

你配置的MaxTRESPU=mem=750000M确实是用户级别的累计内存限制——它统计的是该用户当前所有运行中作业的内存请求总量,而非单个作业的实际内存使用量。

当提交新作业时,Slurm会计算该用户已运行作业的内存请求总和,加上当前作业的内存请求(未指定时使用分区默认值),如果总和超过750000M,就会将作业置于Pending(PD)状态,原因显示QOSMaxMemoryPerUser。

如果你的需求是限制单个作业的内存使用量,可以通过以下方式调整:

  • 在QOS中配置MaxTRESPA=mem=XXXM,设置单个作业的内存上限
  • 在分区配置中设置DefaultMemPerCPU或DefaultMemPerNode,规范作业默认内存请求;同时可保留DenyOnLimit,拒绝超出限制的作业提交

另外注意:squeue结果中作业所在分区是nrpe,但你配置的目标分区是testpartition,请确认作业是否提交到了正确的分区,避免因分区配置不匹配引发问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:47:07