Slurm 20.11.8运行srun作业挂起 如何查找诊断信息
Slurm作业挂起排查方向
- 首先确认作业当前状态
- 执行
squeue查看作业的状态码:如果是PD说明作业还在排队,可通过scontrol show job <作业ID>查看排阻原因;如果是R说明作业已经被调度到节点但无法正常执行 - 执行
scontrol show nodes查看所有节点的实际资源配置是否和slurm.conf中声明的一致,是否存在配置不匹配导致的资源无法分配问题
- 执行
- 检查计算节点的slurmd服务状态
- 登录到所有计算节点,执行
systemctl status slurmd确认slurmd服务是否处于active (running)状态,若服务未启动或启动失败,查看服务报错信息定位问题
- 登录到所有计算节点,执行
- 验证集群网络连通性
- 确认登录节点、控制节点、所有计算节点之间的hostname可以互相解析,无解析错误
- 验证Slurm相关端口连通性:控制节点的6817端口、所有计算节点的6818端口需要在集群内部互通,可通过
nc -zv <目标主机名> <端口号>命令测试连通性
- 检查集群配置一致性与权限
- 确认所有节点的
/etc/slurm/slurm.conf文件内容完全一致,无差异 - 确认
slurm用户的UID、GID在所有节点完全相同,/var/spool/slurmctld、/var/spool/slurmd等工作目录的所有者为slurm用户,权限配置正确 - 确认cgroup配置正常:因为配置中使用了
proctrack/cgroup模块,需要验证计算节点的cgroup已经正确挂载,无缺失
- 确认所有节点的
- 查看Slurm日志定位报错
- 控制节点查看slurmctld日志(默认路径为
/var/log/slurm/slurmctld.log),查看作业提交、调度阶段的报错信息 - 计算节点查看slurmd日志(默认路径为
/var/log/slurm/slurmd.log),查看作业执行阶段的报错信息
- 控制节点查看slurmctld日志(默认路径为
- 手动执行测试验证
- 直接登录到计算节点,在本地执行
srun --localhost -n1 hostname,确认本地srun命令是否可以正常执行 - 在提交节点指定具体计算节点执行作业:
srun -w pauli-node-01 -N1 -n1 hostname,判断是单个节点故障还是集群整体问题
- 直接登录到计算节点,在本地执行
内容的提问来源于stack exchange,提问作者Branch
相关产品推荐
相关产品推荐

