如何找到与 sbatch 作业相关的进程?

Ale*_*lex 5 linux process slurm

当我在多节点系统上启动作业sbatch时,一些进程正在相关节点上启动。

如何找出这些因运行而启动的节点上正在运行的进程(进程ID)sbatch

我检查了 slurm 文档,但没有找到任何显示所涉及进程的命令(例如scontrolsstat)。

这个想法是找到进程 ID,然后使用 Linux 工具来调试“卡住”的进程(即没有输出等),并且可能找出这个特定进程正在做什么。

dam*_*ois 8

您正在寻找的是scontrol listpids. 来自scontrol 联机帮助页

listpids [job_id[.step_id]] [NodeName]

打印作业步骤中的进程 ID 列表(如果提供了 JOBID.STEPID),或作业中的所有作业步骤(如果提供了 job_id),或本地上所有作业中的所有作业步骤节点(如果未提供 job_id 或 job_id 为“*”)。这仅适用于运行 scontrol 的节点上的进程,并且仅适用于 Slurm 及其后代生成的进程。请注意,某些 Slurm 配置(pgid 的 ProctrackType 值)无法识别与作业或作业步骤关联的所有进程。请注意,NodeName 选项仅当您在同一主机上运行多个 slurmd 守护程序时才真正有用。一台主机上的多个 slurmd 守护进程通常仅由 Slurm 开发人员使用。

只需通过 SSH 连接到计算节点并运行scontrol listpids. 它将输出一个包含 PID/JOBID 对应关系的表。

[root@node003 ~]# scontrol listpids | column -t
PID     JOBID     STEPID      LOCALID  GLOBALID
269852  68706234  batch       0        0
269998  68706234  batch       -        -
[etc.]
Run Code Online (Sandbox Code Playgroud)

我在这里使用该column命令是为了更好地对齐列并方便阅读。