阿里云容器服务GPU监控2.0基础篇3:监控NVIDIA XID错误

简介: 本系列相关文章:阿里云容器服务GPU监控2.0基础篇1:基本功能使用阿里云容器服务GPU监控2.0基础篇2:监控NVLINK带宽阿里云容器服务GPU监控2.0基础篇3:监控NVIDIA XID错误阿里云容器服务GPU监控2.0进阶篇1:剖析(Profiling)GPU使用情况必备知识阿里云容器服务GPU监控2.0进阶篇2:学会剖析(Profiling)GPU使用情况本篇文章将向您介绍如何使用GPU
XID错误消息是NVIDIA驱动报告的错误信息,一般会将错误消息记录在/var/log/messages(或使用dmesg -T查看),如果一个节点有XID错误消息,说明节点发生了与GPU有关的错误,这个错误有可能是由于GPU硬件故障引起,也有可能是软件问题引起的(比如:运行的程序有bug)。

每个XID 错误消息都有一个编号,从XID错误描述的官方页面可以查询得到。例如:如果发生了XID为43的错误,那么可以通过官方网站查询到XID 43的描述信息:

更详细的描述信息:

可以知道XID 43产生的原因一般是因为用户的应用程序代码有bug导致的。

模拟产生XID错误

为了能够展示监控效果,需要产生XID错误,本次示例将提交一个能够产生XID 43的任务,该任务的yaml文件如下:

apiVersion: batch/v1
kind: Job
metadata:
  name: xid43-sample
spec:
  parallelism: 1
  template:
    metadata:
      labels:
        app: xid43-sample
    spec:
      containers:
      - name: xid-sample
        image: registry.cn-beijing.aliyuncs.com/ai-samples/make-xid43:1.0
        command:
        - sleep
        - 365d
        resources:
          limits:
            nvidia.com/gpu: 1 #申请一张GPU卡
        workingDir: /root
      restartPolicy: Never

使用kubectl apply提交该任务,等待任务处于Running,使用kubectl get po查询任务Pod状态:

# kubectl get po

NAME                                        READY   STATUS    RESTARTS   AGE
xid43-sample-qzfs7                          1/1     Running   0          4m32s

可以看到,任务的Pod处于Running状态。

然后使用kubectl exec进入pod内部:

# kubectl exec -ti xid43-sample-qzfs7 bash

进入pod以后,使用如下命令产生一个XID 43错误:

root@xid43-sample-qzfs7:~#  cuda-memcheck --log-file cudatestmemcheck.log python gen_xid.py

监控XID错误

登录到GPU监控2.0大盘,具体操作如下:

  1. 集群列表 页面中,单击目标集群名称或者目标集群右侧 操作 列下的 详情
  2. 在集群管理页左侧导航栏中,选择 运维管理 > Prometheus监控
  3. Prometheus监控 大盘列表页面,单击 GPU监控 页签,您分别可以看到 集群维度的GPU监控大盘 节点维度的GPU监控大盘 点击“集群维度GPU监控大盘”

从“The Last one XID Error”这个面板可以看到,cn-beijing.192.168.10.169的0号GPU卡发生了XID 43错误:

当然也可以在“节点维度的GPU监控大盘”查看,选择节点为cn-beijing.192.168.10.169,在“The Last one XID Error”这个面板可以看到,0号GPU卡发生了XID 43错误。

总结

本篇文档介绍了如何利用GPU监控2.0查看节点是否发生XID错误,目前监控XID错误的能力还是比较弱,比如:如果是一张GPU上运行多个应用,如果有应用产生XID错误,当前还无法显示该XID错误是由哪个程序产生的。

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
3月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
375 1
|
3月前
|
人工智能 城市大脑 运维
喜讯!阿里云国产异构GPU云平台技术荣获“2025算力中国·年度重大成果”
2025年8月23日,在工业和信息化部新闻宣传中心、中国信息通信研究院主办的2025中国算力大会上,阿里云与浙江大学联合研发的“国产异构GPU云平台关键技术与系统”荣获「算力中国·年度重大成果」。该评选旨在选拔出算力产业具有全局性突破价值的重大成果,是业内公认的技术创新“风向标”。
462 0
|
4月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
556 3
|
5月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
957 108
|
6月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
519 57
|
3月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 推荐镜像

    更多