在Slurm中自动终止未活动作业?

3
有没有一种方法可以在slurm中自动终止非活动作业?或者换句话说,只要作业消耗合理的CPU或与用户进行交互,就自动延长作业的时间限制?例如通过slurm.conf中的某些设置。
使用情况是,在交互会话(srun --pty)期间,我希望在操作会话时将会话保持在时间限制内。但是如果我在4小时内没有对其进行操作,则可以安全地终止会话(即作业)。
1个回答

2

Slurm没有直接实现这个功能,但您可以依靠Bash的TMOUT机制。

TMOUT是一个环境变量,您可以将其设置为提示在终止Shell之前等待输入的秒数。实际上,在Bash交互会话开始时设置export TMOUT=60,无论何时都没有命令输入60秒,会中止该会话。

[user@cluster ~]$ srun --pty bash
srun: job 11111111 queued and waiting for resources
srun: job 11111111 has been allocated resources
[user@node024 ~]$ export TMOUT=10
[user@node024 ~]$ echo "Let's wait doing nothing"
Let's wait doing nothing
[user@node024 ~]$ timed out waiting for input: auto-logout
[user@cluster ~]$ 

如果您是管理员并希望将此强制执行到用户中,您可以使用任务前言将 TMOUT 变量注入作业 shell 环境。 /!\在实施该措施之前,请务必对其进行彻底测试,以确保其有效性。了解更多信息,请参考任务前言

inactiveLimit Slurm 配置不就是这个作用吗? - Jav
不行,参见https://slurm.schedmd.com/slurm.conf.html#OPT_InactiveLimit - damienfrancois

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