运行数十小时后,远程集群上出现了“陈旧的文件句柄,错误= 116”

时间:2016-11-01 20:35:25

标签: linux filesystems cluster-computing supercomputers

我现在正在远程群集上运行名为CMAQ的模拟代码。我首先连续进行基准测试以查看软件的性能。但是,作业总是运行几十个小时然后崩溃,并显示以下“陈旧文件句柄,错误= 116 ”错误消息:

PBS工作ID:91487.master.cluster 职位名称:cmaq_cctm_benchmark_serial.sh 执行主持人:hs012 / 0 处理您的工作时出错,请参阅下文。 发布作业文件处理错误;作业91487.master.cluster主机hs012 / 0未知资源类型REJHOST = hs012.cluster MSG =无效主目录'/ home / shangxin'指定,errno = 116(过时文件句柄)

这很奇怪,因为我从不修改主目录,这个“/ home / shangxin /”肯定是我的永久目录所在的代码....

此外,在标准输出.log文件中,作业失败时始终显示以下消息:

总线错误 100247.930u 34.292s 27:59:02.42 99.5%0 + 0k 16480 + 0io 2pf + 0w

这条消息具体意味着什么?

我曾经认为这个错误是由于该作业消耗了RAM而这是一个内存溢出问题。但是,当我在运行时使用“free -m”和“htop”命令检查内存使用情况时登录计算节点时,我注意到RAM和交换内存占用率都不会超过10%,处于非常低的水平,所以内存使用率不是问题。

因为我使用“tee”来记录运行到日志文件的作业,所以此文件最多可包含数万行,大小超过1MB。为了测试此标准输出是否压倒了集群系统,我运行了另一个相同的作业但没有标准输出日志文件。几十个小时后,新作业仍然以相同的“Stale file handle,errno = 116”错误失败,因此标准输出也不是原因。

我还尝试与多个内核并行运行作业,运行几十个小时后仍然出现相同的错误。

我可以确保我使用的代码没有问题,因为它可以在其他群集上成功完成。该群集的管理员正在调查此问题,但目前还无法找到具体原因。

有没有人遇到这个奇怪的错误?我们该怎么做才能解决群集上的这个问题?任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

在学术群集上,主目录经常通过NFS安装在群集中的每个节点上,以便为所有节点提供统一的体验。如果不是这种情况,则每个节点都有自己的主目录版本,您必须采取明确的操作来复制工作节点和/或登录节点之间的相关文件。

听起来工作节点上主目录的NFS挂载可能在您的作业运行时失败。除非您拥有群集的管理权限,否则这不是您可以直接修复的问题。如果您需要进行解决方案并且不能等待系统管理员解决问题,您可以:

  1. 尝试在工作节点上使用其他网络驱动器(如果有的话)。在我工作的集群上,通常在root /下直接有临时空间或其他NFS。你可能会很幸运,找到一个比你的主目录更可靠的NFS挂载。
  2. 让您的工作在工作节点本地的临时目录中工作,并将其所有输出文件和日志写入该目录。在作业结束时,您需要将其复制到群集上登录节点上的主目录中。如果您的密钥位于您的主目录中,则可能难以使用ssh,并且可能需要您将密钥复制到临时目录,这通常是个坏主意,除非您限制对具有文件权限的密钥的访问。
  3. 尝试分配到群集的其他节点。根据我的经验,学术集群通常有一些比其他节点更有趣的节点。根据本地设置,您可以直接请求某些节点,或者可能请求仅在稳定节点上可用的资源。如果您可以跟踪哪些节点不稳定,并且发现您的作业已分配给不稳定节点,则可以重新提交作业,然后取消不稳定节点上的作业。
  4. 最简单的解决方案是与群集管理员合作,但我知道他们并不总是按照您的日程安排工作。