SLURM节点作业状态异常:同节点多作业状态不一致咨询
SLURM作业状态异常排查方案
问题现象
提交3次相同作业到同一节点后,出现状态矛盾的异常情况:
ST TIME NODES NODELIST(REASON) PD 0:00 1 (Resources) PD 0:00 1 (ReqNodeNotAvail, UnavailableNodes:node2) R 2:14 1 node2
- 一个作业处于
(Resources)等待资源状态 - 一个作业显示
(ReqNodeNotAvail, UnavailableNodes:node2)节点不可用 - 同时有一个作业正运行在node2上
重启服务器后问题未解决。
排查步骤
1. 校验节点资源与状态一致性
- 执行
sinfo -Nl查看node2的详细状态,确认是否存在资源预留、节点故障标记、分区限制等情况(比如node2被标记为drain但SLURM未立即终止已有运行作业)。 - 执行
scontrol show node node2查看节点的State、AllocTRES、FreeTRES等参数,对比运行作业的资源占用,确认剩余资源是否匹配等待作业的需求。
2. 核对作业提交参数与队列配置
- 执行
scontrol show job <等待作业ID>分别查看两个PD状态作业的提交参数,确认是否存在隐性差异:比如不同的--constraint、--partition、--qos参数,或者CPU/内存/GPU等资源请求不一致。 - 执行
scontrol show partition检查队列配置,确认是否存在节点优先级、资源限制、调度策略(公平共享、抢占机制)等导致作业等待原因不同的设置。
3. 排查SLURM调度器状态与缓存问题
- 执行
scontrol show sched查看调度器运行状态,确认是否存在进程异常或配置错误。 - 强制刷新节点状态:执行
scontrol update node=node2 state=RESUME(若节点被标记为异常),重新提交测试作业观察状态是否恢复一致。 - 查看SLURM日志(通常在
/var/log/slurm/目录下的slurmctld.log和slurmd.log),搜索node2相关的错误信息,比如节点心跳异常、资源统计偏差等。
4. 验证作业调度逻辑
- 提交与现有作业完全相同的测试作业,观察其队列状态,判断是偶发缓存问题还是持续配置异常。
- 若作业指定
--exclusive等独占参数,检查运行中作业是否占用节点全部资源,但SLURM资源统计出现偏差,导致部分作业判断资源不足、部分判断节点不可用。
内容的提问来源于stack exchange,提问作者Emma Athan
相关产品推荐
相关产品推荐

