AI服务器SRE日常巡检要做哪些配置检查

AI服务器的SRE配置,核心不是把一堆监控工具装上去,而是围绕GPU、驱动、容器运行时和显存这四样东西建立每日可执行的巡检项。
只要每天花几分钟跑完检查脚本,大部分显存泄漏、驱动掉卡和容器起不来的问题都能在影响训练任务之前被发现。

巡检前先确认环境基线

在写巡检脚本之前,先把当前环境的关键版本固定下来,后面所有检查都以这个基线为准。

登录服务器后执行:

nvidia-smi
nvidia-smi --query-gpu=driver_version --format=csv,noheader
nvcc --version

把输出里的驱动版本、
CUDA 版本记到巡检脚本的注释里。驱动版本和 CUDA 版本一旦升级,
需要同步检查容器镜像里的 CUDA 运行时是否匹配
,
否则会出现容器内 nvidia-smi 正常、
但 PyTorch 报 CUDA driver version is insufficient 的情况。

同时确认容器运行时配置:

docker info | grep -i runtime

输出里应该能看到 nvidia runtime。
如果没有,说明 nvidia-container-toolkit 没有正确注册,后面所有带 --gpus 的容器都会失败。

每日GPU健康与显存检查

巡检脚本的第一段查显卡本身。
用 nvidia-smi 的查询模式输出结构化结果,方便脚本判断:

nvidia-smi --query-gpu=index,name,temperature.gpu,utilization.gpu,memory.used,memory.total,ecc.errors.uncorrected.volatile.total --format=csv

重点看三个值:

  • 显存占用:如果某张卡在空闲时段(没有训练任务)显存占用仍然超过 5%,大概率是上一个进程没退干净,用 nvidia-smi 找到 PID 后确认再 kill。
  • 温度:持续高于 85°C 要检查风扇和机房散热,温度过高会触发降频,训练速度明显变慢。
  • ECC 错误:ecc.errors.uncorrected.volatile.total 非零说明显存出现不可纠正错误,这张卡需要安排下线检修。

可以把检查结果写进日志文件,用 crontab 每天固定时间跑:

0 8 * * * /opt/sre/gpu_check.sh >> /var/log/sre/gpu_check.log 2>&1

脚本里用 awk 判断显存占用是否超过阈值,超过就输出告警行,方便后续接告警平台。

容器运行时与驱动版本一致性

AI 服务器上的训练任务基本都跑在容器里,所以巡检要验证容器内 GPU 是否真的可用,而不只是宿主机正常。

跑一个轻量验证容器:

docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

能正常输出显卡信息,说明 nvidia-container-toolkit、驱动和容器运行时链路是通的。
如果报 could not select device driver,先检查 nvidia-container-toolkit 是否安装,再确认 /etc/docker/daemon.json 里是否配置了 nvidia runtime。

另一个容易忽略的点是驱动版本与 CUDA 镜像的兼容性。
宿主机驱动版本决定了容器内能用的最高 CUDA 版本,例如驱动 535 系列最高支持 CUDA 12.2,如果镜像里用的是 CUDA 12.4,容器启动时 nvidia-smi 可能正常,但实际计算会报错。
巡检时把宿主机驱动版本和常用镜像的 CUDA 标签对照一次,记录在案。

日志轮转与磁盘空间

AI 服务器的日志增长很快,训练框架、容器 stdout 和系统日志加起来很容易把磁盘写满。
磁盘满会导致训练中途写 checkpoint 失败,任务直接崩掉。

巡检时检查磁盘使用率:

df -h / /var/lib/docker /data

/var/lib/docker 超过 80% 就要清理,可以执行 docker system prune 删除悬空镜像和无用容器,但执行前确认没有正在运行的任务依赖这些镜像。

同时确认日志轮转配置存在,Docker 默认的 json-file 日志不限制大小,需要在 /etc/docker/daemon.json 里加上:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}

修改后重启 Docker 生效。
巡检脚本里可以用 du -sh /var/lib/docker/containers 看容器日志目录大小,异常增长说明某个容器在疯狂打日志。

常见问题与避坑

巡检脚本本身不要用 set -e。nvidia-smi 在某些掉卡场景下会返回非零退出码,脚本一遇到错误就退出,后面的检查项全部跳过,反而漏掉关键信息。
建议每项检查单独判断,把结果逐行写入日志。

不要只看 nvidia-smi 的显存数字。
部分框架(如 PyTorch)的缓存分配器会预留显存但不释放,nvidia-smi 显示占用高但实际没有计算任务。
巡检时配合 nvidia-smi --query-compute-apps=pid,process_name,used_memory 看具体进程,比单看显存总量更准确。

驱动升级后必须重跑验证容器。
SRE 巡检的价值在于基线稳定,驱动升级属于变更操作,升级后把本文的容器验证命令和 nvidia-smi 检查重新跑一遍,确认所有检查项通过再结束变更。

验证巡检是否生效

配置完成后,手动跑一次巡检脚本,确认日志文件里有完整的检查输出,并且每个检查项都有明确的通过或告警标记。
然后等一个巡检周期,检查日志是否按预期写入、告警是否触发。

如果日志里出现告警,
先按对应检查项排查:
显存占用高查残留进程,
温度高查散热,
ECC 错误查硬件。AI服务器SRE配置的巡检项不需要多,
关键是每天稳定执行,
让异常在变成故障之前被看到。

分享到:
上一篇
AI服务器DevOps配置:用Ansible批量管好GPU推理节点
下一篇
AI服务器AIOps配置:从指标采集到告警落地的实操路径
1
系统公告

关于香港云优质服务器IP地址更换的通知

尊敬的客户: 因原IP运营商大幅涨价,为避免成本转嫁至用户,我司决定更换IP服务商。本次更换后,您的续费价格将保持不变,且新IP网络质量与服务标准不受影响。新IP已分配至后台,即刻生效(更换的新IP都是香港原生IPv4)。 涉及 IP 段: 45.192.x.x 旧 IP 停用时间: 2026 年 12 月 1 日
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意