如何使处于“drain”状态的Slurm节点恢复正常?

40

使用 sinfo 命令,显示有 3 个节点处于 drain 状态。

PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
all*         up   infinite      3  drain node[10,11,12]

我应该使用哪个命令行来取消排空这些节点?

5个回答

42

找到一种方法,进入 scontrol 解释器(在命令行中输入 scontrol),然后

scontrol: update NodeName=node10 State=DOWN Reason="undraining"
scontrol: update NodeName=node10 State=RESUME

然后。
scontrol: show node node10

显示其他信息

State=IDLE

更新:其中一些节点已经回到了DRAIN状态;在执行show node a10命令后注意到它们的根分区已满,显示Reason=SlurmdSpoolDir is full,因此在Ubuntu中执行sudo apt-get clean命令以删除/var/cache/apt目录下的内容,并压缩一些/var/log文件。


8
无需经历“DOWN”状态,您可以直接发出“update ... state=resume”命令。 - damienfrancois

31
如果节点目前没有运行任何作业:
scontrol update nodename=node10 state=idle

如果节点上正在运行作业:

scontrol update nodename=node10 state=resume

16
如果将其设置为下行,所有作业都将被终止。
请将节点设置为 RESUME。

4
节点进入DRAIN状态的另一个原因是系统信息与/etc/slurm/slurm.conf文件中声明的信息不匹配。例如,如果slurm.conf文件声明节点有4个GPU,但是slurm守护程序只发现了其中3个,则会因为不匹配而将该节点标记为“drain”。或者,如果在slurm.conf中声明节点有128G内存,但是slurm守护程序只找到了96G,则也会将状态设置为“drain”。
不匹配的原因代码将由“scontrol show node”命令显示为输出的最后一行。

这对我来说也是事实。最近我在我的 AMD 处理器上禁用了 SMT,结果发现所有节点都处于“排空”状态,因为 Slurm 期望每个核心有 2 个线程(这是节点规范中的内容)。 - Sean W

2

虽然已经有一个已批准的答案,但我想提到通过以下步骤:

scontrol: update NodeName=nodename State=DOWN Reason="undraining"
scontrol: update NodeName=nodename State=RESUME

对于 EndeavourOS 2021.08.27 上的 SLURM 21.08.03,返回错误信息 slurm_update error: Invalid node state specified。我找到了解决方案:

scontrol: update NodeName=nodename State=UNDRAIN

无需设置节点DOWN


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接