

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 尝试运行作业
<a name="troubleshooting-fc-v3-run-job"></a>

如果您在尝试运行作业时遇到问题，下一节将提供可能的问题排查解决方案。

## `srun` 交互式作业失败并显示错误“`srun: error: fwd_tree_thread: can't find address for <host>, check slurm.conf`”
<a name="run-job-srun-interactive-fail-v3"></a>
+ **为什么失败？**

  您运行了 `srun` 命令以提交作业，然后使用 `pcluster update-cluster` 命令提高了队列大小，而没有在更新完成后重启 Slurm 进程守护程序。

  Slurm 以树状层次结构组织 Slurm 进程守护程序以优化通信。只有在进程守护程序启动时才会更新此层次结构。

  假设您使用 `srun` 启动一个作业，然后运行 `pcluster update-cluster` 命令提高队列的大小。新计算节点在更新过程中启动。然后，Slurm 将您的作业排队到其中一个新计算节点。在这种情况下，Slurm 进程守护程序和 `srun` 都不会检测到新计算节点。`srun` 返回错误，因为它未检测到新节点。
+ **如何解决？**

  在所有计算节点上重启 Slurm 进程守护程序，然后使用 `srun` 提交作业。您可以通过运行重启计算节点的 `scontrol reboot` 命令来调度 Slurm 进程守护程序重启。有关更多信息，请参阅 Slurm 文档中的 [scontrol reboot](https://slurm.schedmd.com/scontrol.html#OPT_reboot)。您也可以通过请求重启相应的 `systemd` 服务来手动重启计算节点上的 Slurm 进程守护程序。

## 运行 `squeue` 命令时，作业卡在 `CF` 状态
<a name="run-job-cf-stuck-v3"></a>

这可能是动态节点启动的问题。有关更多信息，请参阅 [在计算节点初始化过程中看到错误](troubleshooting-fc-v3-compute-node-initialization-v3.md)。

## 运行大型作业并看到“`nfsd: too many open connections, consider increasing the number of threads in /var/log/messages`”
<a name="run-job-network-limits-v3"></a>

对于联网文件系统，当达到网络限制时， I/O 等待时间也会增加。这可能会导致软锁定，因为网络用于写入网络和 I/O 指标的数据。

对于第 5 代实例，我们使用 ENA 驱动程序来公开数据包计数器。这些计数器计算网络达到实例带宽限制 AWS 时形成的数据包。您可以检查这些计数器以查看它们是否大于 0。如果是，则说明您已超出带宽限制。您可以通过运行 `ethtool -S eth0 | grep exceeded` 来查看这些计数器。

超出网络限制通常是由于支持过多的 NFS 连接所致。当达到或超过网络限制时，这是首先要检查的因素之一。

例如，以下输出显示已丢弃程序包：

```
$ ethtool -S eth0 | grep exceeded
  bw_in_allowance_exceeded: 38750610
  bw_out_allowance_exceeded: 1165693
  pps_allowance_exceeded: 103
  conntrack_allowance_exceeded: 0
  linklocal_allowance_exceeded: 0
```

为避免收到此消息，请考虑将头节点实例类型更改为性能更高的实例类型。考虑将您的数据存储移至未导出为 NFS 共享的共享存储文件系统，例如 Amazon EFS 或 Amaz FSx on。有关更多信息，请参阅 [共享存储](shared-storage-quotas-integration-v3.md) AWS ParallelCluster Wiki 上的 “[最佳实践](https://github.com/aws/aws-parallelcluster/wiki/Best-Practices)” GitHub。

## 运行 MPI 作业
<a name="run-job-mpi-v3"></a>

### 启用调试模式
<a name="run-job-mpi-enable-v3"></a>

要启用 OpenMPI 调试模式，请参阅 [Open MPI 有哪些控件可以帮助调试](https://www-lb.open-mpi.org/faq/?category=debugging#debug-ompi-controls)。

要启用 IntelMPI 调试模式，请参阅[其他环境变量](https://www.intel.com/content/www/us/en/develop/documentation/mpi-developer-reference-linux/top/environment-variable-reference/other-environment-variables.html)。

### 在作业输出中看到 `MPI_ERRORS_ARE_FATAL` 和 `OPAL ERROR`
<a name="run-job-mpi-errors-v3"></a>

这些错误代码来自应用程序中的 MPI 层。要了解如何从应用程序获取 MPI 调试日志，请参阅[启用调试模式](#run-job-mpi-enable-v3)。

导致此错误的一个可能原因是，您的应用程序已针对特定的 MPI 实现（例如 OpenMPI）进行编译，而您正在尝试对不同的 MPI 实现（例如 IntelMPI）运行该应用程序。确保针对相同的 MPI 实现编译和运行应用程序。

### 在禁用托管 DNS 的情况下使用 `mpirun`
<a name="run-job-mpi-dns-disabled-v3"></a>

对于在 [SlurmSettings](Scheduling-v3.md#Scheduling-v3-SlurmSettings)/[Dn](Scheduling-v3.md#Scheduling-v3-SlurmSettings-Dns) s/[DisableManagedDns](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Dns-DisableManagedDns)和 [UseEc2Hostnames](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Dns-UseEc2Hostnames) 设置为的情况下创建的集群`true`，DNS 不会解析Slurm节点名称。 Slurm如果`nodenames`未启用且 MPI 作业是在上下文中运行的，则可以引导 MPI 进程。Slurm我们建议按照 [Slurm MPI 用户指南](https://slurm.schedmd.com/mpi_guide.html)中的指导来运行使用 Slurm 的 MPI 作业。