终止 SLURM 僵尸作业

终止 SLURM 僵尸作业

在我负责的部门集群第一次硬关闭时,我遇到了以下问题。系统正在运行 SLURM 17.11 并使用 MariaDB/SQL 存储会计数据。

为了执行内存升级,我不得不关闭集群的控制和数据库服务器,该服务器使用 SLURM 作为调度程序。重新启动后,控制守护进程拒绝启动,因为显然状态保存文件/var/spool 不再具有正确的权限。因此,我/var/spool/slurm_state 为 slurm 状态文件创建了一个专用文件夹,并将所有权更改为slurm:slurm。修改sulrm.conf以设置正确后StateSaveLocation,控制守护进程启动,我可以提交测试作业。

然而,我没有抄袭老的状态文件移至新位置。因此,新作业再次从 JobID 1 开始。意识到这一点后,我迅速终止slurmctld并改回StateSaveLocation/var/spool使用适当的组和权限更改)。

现在,当控制守护进程关闭时,正在运行的一个测试作业将停留在数据库中,状态设置为RUNNING systemverwalter 2 240 9-21:40:55 100.0 RUNNING allgather_latency_240_mpich 仅累积帐户的运行时间。

我曾尝试以scancel用户身份以及以的身份终止该作业root,但无济于事。使用暂停该作业的尝试也未scontrol取得预期结果。

我的问题是:我应该怎么做才能终止这项工作?我是否必须手动修改数据库条目,还是有更简单的解决方案?

答案1

以下命令将列出失控的作业并提供删除它们的方法:

sacctmgr show runawayjobs

答案2

好的。我已经找到了一个非常简单的方法来解决这个问题,尽管我不认为这个方法总是有效的。

要消除此类僵尸进程,请按以下步骤操作:

  1. 以具有帐户(或)sacctmgr的用户身份启动 SLURM 帐户管理器。Operatorroot
  2. list runawayjobs通过发出提示来搜索失控的作业sacctmgr
  3. 如果系统识别出一个或多个没有结束日期的作业,即孤立(失控)作业,系统将询问您是否要修复它。使用 确认Y

在报告中出现失控作业sacct9 天后,这些步骤解决了我的问题。

相关内容