我现在正在远程集群上运行一个名为 CMAQ 的模拟代码。我首先连续运行基准测试以查看软件的性能。但是,该作业总是运行数十个小时,然后崩溃并出现以下“ Stale file handle, errno=116 ”错误消息:
PBS 作业 ID:91487.master.cluster 作业名称:cmaq_cctm_benchmark_serial.sh 执行主机:hs012/0 处理您的作业时发生错误,请参见下文。发布作业文件处理错误;job 91487.master.cluster on host hs012/0Unknown resource type REJHOST=hs012.cluster MSG=invalid home directory '/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”错误,因此标准输出也不是原因。
我还尝试与多个内核并行运行该作业,运行数十小时后仍然失败并出现相同的错误。
我可以确保我正在使用的代码没有问题,因为它可以在其他集群上成功完成。该集群的管理员正在调查该问题,但目前还无法找出具体原因。
有没有人遇到过这个奇怪的错误?我们应该怎么做才能解决集群上的这个问题?任何帮助表示赞赏!