SuperAPI AI 工具集

hyperpod-slurm-debugger

测试与质量

查看项目

更新于 10-15 19:58

技能介绍

用途:面向 Amazon SageMaker HyperPod Slurm 集群的纯诊断技能,用于识别和分类 Slurm 调度器(slurmctld)与节点守护进程(slurmd)问题,范围对应 HyperPod 故障排查指南。仅诊断,不运行、不建议、不打印任何会变更状态的命令;修复一律链接到 AWS 或 Slurm 官方文档,由用户自行授权执行。

适用与不适用:当用户报告决策表中的症状时调用。若集群为 Orchestrator.Eks,应改用 hyperpod-node-debugger 或 hyperpod-nccl;单节点硬件故障且调度器正常用 hyperpod-node-debugger;NCCL 训练挂起用 hyperpod-nccl;节点无法通过 SSM 访问用 hyperpod-ssm。

前置条件:AWS CLI v2 并具备 sagemaker:DescribeCluster、sagemaker:ListClusterNodes 及对 HyperPod 创建的 SSM 文档执行 ssm:StartSession 的权限;本地安装 Session Manager 插件;jq ≥ 1.6;unbuffer(expect 包)为必需,否则 aws ssm start-session 会间歇性返回空 stdout 并报 Cannot perform start session: EOF,导致检查静默误报,缺失时脚本在预检阶段退出。

使用方式:先收集集群名(非 Slurm 分区名)、区域和可选节点名;用 aws sagemaker describe-cluster --cluster-name <NAME/ARN> --region <REGION> --query 'Orchestrator' --output json 确认编排器;再运行 bash scripts/slurm-diagnose.sh --cluster <NAME> --region <REGION>,可用 --node <SLURM_NODE> 限定节点,并原样转述输出;最后按决策表把发现映射到对应 AWS/Slurm 文档。默认只读,区域默认取 $AWS_DEFAULT_REGION 否则 us-east-1,输出为彩色终端(可用 --no-color)。

覆盖场景:节点 down(slurmd 无响应、磁盘满、OOM、网络分区、硬件故障)、意外重启(down* 且 Reason 为 Node unexpectedly rebooted)、控制器状态失步(作业 PENDING 但节点空闲、COMPLETING 卡住、GRES 未释放、scontrol ping 超时、slurmdbd 连接异常、配置未生效)、Action Reason 不匹配(state=fail 的 reason 必须精确为 Action:Reboot 或 Action:Replace)、以及 --auto-resume=1 未重启作业的原因分析。

限制:只读,无修复标志;IaC 管理的集群直接变更会导致实际状态与 IaC 计划漂移,需警告;控制器重启在节点替换进行中、仅单节点故障、sinfo/squeue 正常、未查看 journalctl、刚编辑 slurm.conf 等情况下不应执行。资料未提供价格、平台支持范围等更多信息。