Microsoft PAI 集群故障排查指南

Microsoft PAI 集群故障排查指南

pai Resource scheduling and cluster management for AI pai 项目地址: https://gitcode.com/gh_mirrors/pa/pai

前言

作为Microsoft PAI(开放人工智能平台)的集群管理员,在日常运维过程中可能会遇到各种问题。本文将系统性地介绍PAI集群常见故障的排查方法和解决方案,帮助管理员快速定位和解决问题。

一、服务容器异常问题排查

1.1 PaiServicePodNotReady报警处理

问题现象:收到来自alert manager的PaiServicePodNotReady报警,表明服务容器可能被异常终止。

可能原因

  1. 系统内存不足导致OOM Killer终止容器
  2. 容器自身崩溃
  3. Kubernetes调度问题

排查步骤

  1. 检查内存状况

    • 访问Prometheus界面(默认地址为http://<master-ip>:9091
    • 查询node_memory_MemFree_bytes指标
    • 如果空闲内存接近0,则很可能是OOM问题
  2. 确认OOM Killer行为

    • 登录问题节点执行dmesg | grep oom命令
    • 或使用docker inspect <容器ID>查看详细终止信息

解决方案

  1. 强制删除问题Pod:
kubectl delete pod <pod名称> --grace-period=0 --force
  1. 如果删除卡住,重启节点上的docker服务:
/etc/init.d/docker restart
  1. 长期解决方案:
  • 适当增加Pod的内存限制
  • 优化服务内存使用
  • 增加节点内存资源

二、节点状态异常问题

2.1 NodeNotReady报警处理

问题现象:watchdog服务报告节点状态为"unknown"。

排查流程

  1. 基础检查

    • 尝试ping节点IP
    • 检查节点是否关机
  2. kubelet状态检查

sudo systemctl status kubelet
  1. 日志分析
journalctl -u kubelet -n 100

重点关注与API Server的连接问题

常见错误

Error updating node status: Get http://<api-server-ip>:8080/api/v1/nodes/<node-ip>

解决方案

  • 检查节点与Master间的网络连接
  • 重启kubelet服务
  • 检查防火墙设置

三、存储空间问题

3.1 NodeFilesystemUsage报警

阈值:磁盘使用率超过80%触发报警

主要占用空间的服务

  1. storage manager
  2. docker镜像缓存
  3. PAI日志目录/var/log/pai

排查命令

# 查看磁盘使用情况
df -h

# 查找大文件
du -sh /var/lib/docker/* | sort -rh
du -sh /var/log/pai/* | sort -rh

解决方案

  • 清理过期docker镜像
  • 设置日志轮转策略
  • 扩容磁盘空间

四、GPU相关问题

4.1 NodeGpuCountChanged报警

原因:实际GPU数量与layout.yaml配置不符

解决步骤

  1. 在dev box容器中检查并修改layout.yaml
  2. 更新配置并重启相关服务:
/pai/paictl.py service stop -n cluster-configuration job-exporter
/pai/paictl.py config push -p <config-dir> -m service
/pai/paictl.py service start -n cluster-configuration job-exporter

4.2 GPU无法识别问题排查

检查清单

  1. 显卡驱动是否正常(nvidia-smi命令)
  2. nvidia-container-runtime是否配置正确:
docker info -f "{{json .DefaultRuntime}}"

4.3 GPU低性能状态处理

解决方法

sudo nvidia-smi -pm ENABLED -i <gpu-id>
sudo nvidia-smi -ac <memory-clock>,<clock> -i <gpu-id>

查询支持的时钟频率

sudo nvidia-smi -q -d SUPPORTED_CLOCKS

五、监控数据缺失问题

可能原因:监控组件异常

关键服务检查

  • prometheus
  • grafana
  • job-exporter
  • node-exporter

排查步骤

  1. 检查服务状态:
kubectl get pod
  1. 查看服务日志:
kubectl logs <pod-name>
  1. 解决问题后重启集群

六、云环境特殊问题

6.1 节点被回收后无法自动恢复

解决方案:设置定期检查的cron job

示例脚本

ansible-playbook -i inventory/mycluster/hosts.yml upgrade-cluster.yml \
--become --become-user=root \
--limit=${limit_list} \
-e "@inventory/mycluster/openpai.yml"

七、存储扩容方案

7.1 增加Internal Storage容量

操作步骤

  1. 停止所有PAI服务
  2. 备份原存储目录:
sudo mv /mnt/paiInternal /mnt/paiInternalBak
  1. 修改services-configuration.yaml
internal-storage:
    quota-gb: 100
  1. 推送配置并启动internal-storage服务
  2. 迁移数据:
sudo mv /mnt/paiInternalBak/pgdata /mnt/paiInternal/
  1. 启动所有服务

结语

本文涵盖了Microsoft PAI集群运维中最常见的故障场景及其解决方案。作为集群管理员,建议定期检查系统日志和监控指标,建立预防性维护机制,以降低严重故障发生的概率。对于复杂问题,建议结合多个监控工具的数据进行综合分析。

pai Resource scheduling and cluster management for AI pai 项目地址: https://gitcode.com/gh_mirrors/pa/pai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苗眉妲Nora

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值