AI服务器集群管理:用Slurm和监控把多机训练管起来

多台GPU服务器放在一起不等于集群。
AI服务器集群管理要解决三件事:节点之间环境一致、训练任务能排队调度、GPU和温度状态能随时看到。
下面按“准备节点、装调度器、配监控、验证排错”的顺序走一遍,适合刚接手几台到几十台训练机的运维或算法同学。

先把节点环境统一,再谈调度

集群管理最怕每台机器CUDA版本、驱动版本、用户目录都不一样。
动手前先做三件事:

  • 所有节点安装相同版本的GPU驱动和CUDA,用 nvidia-smi 确认驱动版本一致。
  • 配置主机名和hosts解析,确保管理节点能用主机名ping通计算节点。
  • 创建统一的普通用户(如 train),并配置SSH免密登录,后面Slurm和分发文件都依赖它。

检查主机名和解析:

hostnamectl set-hostname gpu01
cat >> /etc/hosts <<'EOF'
192.168.1.11 gpu01
192.168.1.12 gpu02
EOF
ping -c 2 gpu02

配置免密(在管理节点执行,把公钥推到各计算节点):

ssh-keygen -t rsa -b 4096
ssh-copy-id train@gpu02
ssh train@gpu02 hostname

避坑:不要在每台机器上单独建不同的conda环境再指望调度器帮你对齐。
训练镜像或环境目录最好放在共享存储(NFS)上,挂载路径保持一致,比如都挂到 /data/envs。

安装Slurm,让训练任务排队跑

Slurm是常用的开源作业调度器,作用是接收训练脚本、按GPU资源排队、分配到具体节点执行。
管理节点装 slurmctld,计算节点装 slurmd。
以Ubuntu为例:

apt install -y slurm-wlm munge
systemctl enable --now munge

核心配置在 /etc/slurm/slurm.conf,最小可用片段如下(主机名按实际替换):

ClusterName=ai-cluster
SlurmctldHost=gpu01
AuthType=auth/munge
SelectType=select/cons_tres
SelectTypeParameters=CR_Core_Memory
GresTypes=gpu
NodeName=gpu01 CPUs=64 RealMemory=256000 Gres=gpu:8 State=UNKNOWN
NodeName=gpu02 CPUs=64 RealMemory=256000 Gres=gpu:8 State=UNKNOWN
PartitionName=train Nodes=gpu01,gpu02 Default=YES MaxTime=INFINITE State=UP

计算节点还需要一个 gres.conf 告诉Slurm每台有几块GPU:

NodeName=gpu01 Name=gpu File=/dev/nvidia0
NodeName=gpu01 Name=gpu File=/dev/nvidia1

实际有几块卡就写几行,或使用自动检测工具生成。
改完后重启服务并检查:

systemctl restart slurmctld
systemctl restart slurmd
sinfo
scontrol show node gpu01

sinfo 里节点状态从 unknown 变成 idle 就说明注册成功。
提交一个测试任务验证调度:

srun -N1 --gres=gpu:1 nvidia-smi

能看到GPU信息,说明从排队到执行这条链路通了。

避坑:slurm.conf 改了之后所有节点都要同步并重启对应服务,只改管理节点会出现节点状态对不上;Gres 写错数量会导致任务一直排队等资源。

配一套能看GPU和温度的监控

调度器只管分配,不负责告诉你哪张卡快过热了。
最轻量的做法是每台节点跑一个指标采集,把GPU利用率、显存、温度汇总到管理节点。
可以用 dcgm-exporter 配合Prometheus和Grafana,也可以先用脚本定时采集做过渡。

快速检查单节点GPU状态的命令:

nvidia-smi --query-gpu=index,utilization.gpu,memory.used,temperature.gpu --format=csv

如果要批量看所有节点,可以写个简单循环:

for h in gpu01 gpu02; do
  echo "== $h =="
  ssh $h nvidia-smi --query-gpu=utilization.gpu,temperature.gpu --format=csv,noheader
done

监控至少要盯三个指标:GPU利用率长期为0但任务在跑(可能是数据加载瓶颈)、显存接近打满(容易OOM)、温度持续超过阈值(触发降频)。
把这些做成面板,比事后翻日志高效得多。

常见故障怎么定位

任务提交后一直排队,先看资源是否真的空闲:

squeue -l
scontrol show job 

如果节点显示 idle 但任务不动,检查分区是否匹配、Gres 是否写对。
节点掉线时,sinfo 会显示 down 或 drain,用 scontrol update NodeName=gpu02 State=RESUME 恢复前,先登录节点确认 slurmd 是否在运行、munge服务是否正常。

多机训练通信失败,优先排查节点间网络和主机名解析,再确认训练框架用的网卡和IP是否一致。
这类问题靠日志里的报错定位,不要盲目重装环境。

验证集群是否真的可用

搭完后按这几点验收:

  • sinfo 所有节点为 idle,无 down。
  • srun 单卡任务能正常执行并输出GPU信息。
  • 提交一个多节点任务,确认跨机通信正常。
  • 监控面板能看到各节点GPU温度和利用率实时变化。

AI服务器集群管理不是装完调度器就结束,节点一致性、资源配额和监控告警要持续维护。
建议先把单节点和调度链路跑通,再逐步接入共享存储和告警,避免一次性铺太大导致问题难定位。

分享到:
上一篇
AI服务器液冷配置:从冷板选型到漏液检测的落地步骤
下一篇
AI服务器集群监控:从零搭建Prometheus与GPU指标采集
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意