怎样监控GPU调度状态

GPU
小华
2026-07-05

监控 GPU 调度状态,通常取决于你处在裸机 / 云主机Kubernetes 集群,还是深度学习训练框架层面。下面按常见场景给你一个系统性的说明。

一、单机 / 裸机环境(最常用)

1️⃣ 使用 nvidia-smi(基础但最重要)

nvidia-smi

可看到:

  • GPU 利用率(GPU-Util)
  • 显存占用(Memory-Usage)
  • 当前进程(Processes)

持续监控:

watch -n 1 nvidia-smi

或:

nvidia-smi dmon

输出示例字段:

  • gpu:GPU 编号
  • pwr:功耗
  • temp:温度
  • sm:SM 利用率(最接近“调度状态”)
  • mem:显存控制器利用率

适合判断:GPU 是否真的在被调度执行 kernel

2️⃣ 查看 GPU 上运行的进程

nvidia-smi --query-compute-apps=pid,process_name,gpu_uuid,used_memory --format=csv

结合:

ps -fp 

可判断:

  • 是哪个任务在占用 GPU
  • 是否出现“占卡不计算”的情况

二、CUDA / 驱动级调度监控(进阶)

3️⃣ nvtop(强烈推荐)

nvtop

功能类似 htop,但针对 GPU:

  • 实时显示 GPU 利用率
  • 每个进程的显存 / 计算负载
  • 多 GPU 一目了然

是否被调度、是否空闲,非常直观

4️⃣ CUDA 上下文与 kernel 调度(开发者)

如果你是写 CUDA / 深度学习框架:

  • 使用 CUDA Profiling Tools
  • nvprof(旧)
  • Nsight Systems(推荐)
  • 可看到:
  • kernel launch
  • stream 调度
  • context switch
  • CPU → GPU 调度延迟

适合分析:

  • 为什么 GPU 利用率低
  • 是否存在调度瓶颈

三、Kubernetes / 云原生环境(常见生产场景)

5️⃣ 查看 Pod 与 GPU 绑定关系

kubectl get pods -o wide

查看 GPU 资源请求:

kubectl describe pod 

关注:

resources:
limits:
nvidia.com/gpu: 1

6️⃣ 使用 kubectl exec 查看容器内 GPU 状态

kubectl exec -it  -- nvidia-smi

7️⃣ GPU 调度器 & 设备插件监控

常见组件:

  • nvidia-device-plugin
  • gpu-operator

查看插件状态:

kubectl get pods -n kube-system | grep gpu
kubectl logs 

✅ 可判断:

  • GPU 是否被正确调度
  • 是否存在资源分配失败

8️⃣ Prometheus + DCGM Exporter(生产推荐)

架构:

GPU → DCGM → Prometheus → Grafana

部署:

  • dcgm-exporter
  • 采集指标如:
  • DCGM_FI_DEV_GPU_UTIL
  • DCGM_FI_DEV_MEM_COPY_UTIL
  • DCGM_FI_DEV_POWER_USAGE

可监控:

  • GPU 是否被调度
  • 长期利用率趋势
  • 多节点统一监控

四、深度学习框架层(任务级)

9️⃣ PyTorch / TensorFlow 层面

PyTorch

import torch
print(torch.cuda.current_device())
print(torch.cuda.memory_summary())

TensorFlow

tf.config.list_physical_devices('GPU')

⚠️ 注意:

  • 框架显示“有 GPU” ≠ GPU 正在被调度执行
  • 必须结合 nvidia-smi 看 kernel 是否真正运行

五、常见“GPU 调度异常”判断经验

现象可能原因
GPU 显存占用但利用率 0%程序卡住 / data loader 慢
多进程但 GPU 利用率低串行 kernel / 同步阻塞
GPU 频繁切换进程多任务争抢 GPU
Pod 启动但 nvidia-smi 无进程没真正使用 GPU

六、推荐组合(按场景)

✅ 单机开发

nvidia-smi + nvtop

✅ 训练任务分析

nvidia-smi + Nsight Systems

✅ Kubernetes 生产

nvidia-device-plugin + dcgm-exporter + Grafana

如果你愿意,可以告诉我:

  • ✅ 是 裸机 / K8s / Slurm / 云厂商
  • ✅ 监控目的(排查问题 / 容量规划 / 自动调度)
  • ✅ GPU 型号(A100 / V100 / 4090 等)

我可以给你一套更精确的监控方案或命令清单

亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序