本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 pcluster-diag 进行故障排除
pcluster-diag是一种诊断工具,用于验证健康 Amazon ParallelCluster 节点应满足的一组条件。
当集群在运行时出现异常行为时,用pcluster-diag作第一步。该工具会发出 JSON 诊断报告,以帮助您了解影响集群的问题。如果您无法解决问题,请将报告附加到 Amazon 支持案例中。
从 3.16.0 版开始的每个 Amazon ParallelCluster AMI 中都包含该工具,包括官方 AMI 和您构建时使用的自定义 AMI。pcluster build-image如果您使用的是旧 Amazon ParallelCluster 版本,则仍然可以按照中的步骤安装该工具低于 3.16.0 的版本。
你可以在任何群集节点pcluster-diag上运行。如果你不知道问题出在哪里,请在头节点上运行它。
主要特性
-
上下文感知 ——在启动时,它会读取节点类型和已部署的集群配置,然后仅运行适用的检查。检查您的集群未使用的功能将被报告为已跳过。
-
Read-only 默认情况下,它永远不会更改集群的配置。非只读支票需要您的明确批准才能运行,如果您拒绝,则将其记录为跳过。
-
一次运行即可完成 ——失败的检查永远不会停止其他检查。每一次适用的检查都会在每次调用时运行,因此,根据可用的检查,一次运行即可获得节点的完整情况。
显示可用支票
要查看该工具将执行哪些检查,请使用子命令,该describe-checks子命令返回每个注册支票的 JSON 数组,每个检查都有其 ID 和描述。
$pcluster-diag describe-checks[ { "check_id": "...", "check_description": "..." }, ... ]
执行检查
连接到要诊断的节点,然后以 root 身份执行run子命令。
$sudo pcluster-diag run
pcluster-diag写入两个单独的流:
-
标准错误的进度日志。
-
将JSON报告转换为标准输出。同一报告还保存到当前目录下的带有时间戳的文件
./pcluster-diag-output/中。
可用选项如下:
--output-filepath-
写入 JSON 报告的文件。例如,默认为下方的
./pcluster-diag-output/带有时间戳的文件。./pcluster-diag-output/pcluster-diag-report-2026-08-04T10-12-00.json -y,--yes-
批准每张需要确认的支票,无需提示。当你
pcluster-diag从脚本运行时使用它。 --version-
打印
pcluster-diag版本。 --help-
打印使用信息。
pcluster-diag run --help打印run子命令的选项。
解释报告
pcluster-diag发出一个 JSON 报告,说明它运行的每一次检查,无论检查是通过、警告、失败还是被跳过。context描述了被诊断的节点。该报告的总体结构如下:
{ "context": { ... }, "results": [ { "check_id": "...", "check_description": "...", "status": "...", "errors": [ { "code": "...", "message": "..." } ], "warnings": [ { "code": "...", "message": "..." } ], "infos": [ { "code": "...", "message": "..." } ] } ] }
检查状态
每张status支票都会告诉你该怎么做。
| Status | 含义 | 操作 |
|---|---|---|
|
此检查没有发现任何问题。 |
- |
|
此检查发现了一些可能导致节点出现问题的东西。 |
查看清 |
|
此检查在节点上发现了问题。 |
查看清 |
|
检查无法完成,因此无法确认状态。 |
将其视为没有定论,而不是问题。将错误报告给 Amazon 支持部门,因为这可能是未处理错误的信号。 |
|
该检查不适用于此节点类型或您的集群配置。 |
没什么。这是您的集群未使用的功能的预期状态。 |
|
这张支票需要你确认,但你拒绝了。 |
重新运行 |
如果每张支票都有报告PASSED,没有pcluster-diag发现任何问题。但是,的覆盖范围pcluster-diag并不全面,并且会随着每个版本的发布而增加。健康的诊断并不能保证集群运行正常。
查看调查结果
检查结果可以包含三种结果,每种结果都有 a code 和 a message。
-
errors,已编码E,是检查失败的原因。保留代码nE0仅用于导致无法正确执行检查的内部错误。 -
warnings,经过编码W,是非致命观察结果。n -
infos,已编码I,是上下文注释。n
从中获取最新的 pcluster-diag GitHub
pcluster-diag适用于所有 Amazon ParallelCluster 版本 3.16.0 及更高版本,也可以通过一些额外步骤安装在旧版本上。
新的检查和改进的诊断消息已放入网站的 aws-parallelcluster-cookbook 存储库
版本 3.16.0 及更高版本
在 3.16.0 及更高 Amazon ParallelCluster 版本中,该pcluster-diag命令已安装并在上可用。PATH
要从develop分支更新工具,请在要执行该工具的节点上运行以下命令。
$curl -fL https://github.com/aws/aws-parallelcluster-cookbook/archive/refs/heads/develop.tar.gz \ | sudo tar -xz --strip-components=5 -C /opt/parallelcluster/sources/pcluster-diag \ --wildcards '*/cookbooks/aws-parallelcluster-platform/files/pcluster-diag/*'
验证该工具是否正常运行:
$sudo pcluster-diag describe-checks
要使用提示以外的版本develop,请develop在 URL 中替换为所需的分支或标签,例如分release-*支。
记住以下内容:
-
刷新仅适用于您运行它的节点。在要使用新检查诊断的每个节点上重复此操作。
-
工具源代码已内置到 AMI 中,因此被替换的节点会返回来自 AMI 的版本。
低于 3.16.0 的版本
在 3.16.0 之前的 Amazon ParallelCluster 版本中,该pcluster-diag命令未安装在节点上。
要从develop分支安装该工具,请在要执行该工具的节点上运行以下命令。
$sudo mkdir -p /opt/parallelcluster/sources/pcluster-diag curl -fL https://github.com/aws/aws-parallelcluster-cookbook/archive/refs/heads/develop.tar.gz \ | sudo tar -xz --strip-components=5 -C /opt/parallelcluster/sources/pcluster-diag \ --wildcards '*/cookbooks/aws-parallelcluster-platform/files/pcluster-diag/*'
验证该工具是否正常运行:
$PYTHONPATH=/opt/parallelcluster/sources/pcluster-diag /opt/parallelcluster/pyenv/versions/3.12.8/envs/cookbook_virtualenv/bin/python3 -m pcluster_diag.cli describe-checks