Slurm运行批处理作业不生成日志及输出文件故障咨询
故障根因分析
- 核心原因是 Slurm作业在分配的计算节点本地执行,输出文件写入到了两次作业都命中的
n2计算节点的本地磁盘,而非你提交作业的登录节点磁盘 - 第一次作业(JobId=142)失败原因:
你最初指定的输出路径为相对路径serial_test_%j.log,Slurm默认会将该文件输出到作业工作目录/home/ebryer下。如果计算节点n2没有挂载/home共享目录,或者n2本地不存在/home/ebryer路径、用户ebryer对该路径无写入权限,Slurm无法创建输出日志文件,直接导致作业返回退出码1、执行失败。 - 第二次作业(JobId=143)显示成功但找不到文件原因:
你将输出路径改为/tmp/serial_test_%j.log后,n2节点的/tmp是系统默认存在的本地路径,所有用户都有写入权限,Slurm可以正常创建输出文件,因此作业状态显示为COMPLETED。但你是在登录节点的/tmp和/home/ebryer路径下查找文件,文件实际存储在n2节点的本地/tmp和对应工作目录下,自然无法找到。
验证与修复方案
- 验证:执行
ssh n2 ls /tmp/serial_test_143.log即可看到对应输出文件,登录n2节点后查看对应工作目录也能找到test.log文件。 - 修复:如果需要在登录节点直接访问作业输出,将输出路径和作业内写入的文件路径设置为集群所有节点都挂载的共享存储路径(如公共scratch目录、统一挂载的共享家目录等)即可。
内容的提问来源于stack exchange,提问作者Consumer of Cat Content
相关产品推荐
相关产品推荐

