首页/AI/大模型部署与运维速查/nvidia-smi 基础用法
推理环境与 GPU50 条

nvidia-smi 基础用法

GPU 运维的瑞士军刀:直接执行查看显存、利用率、温度与进程表;配合 -l 秒级刷新,是排查服务行为的起点。

nvidia-smi 是什么

nvidia-smi 是 NVIDIA 驱动自带的命令行工具,直接读取驱动暴露的设备状态:显存占用、计算单元利用率、温度、功耗、当前时钟与占用显存的进程表。它不依赖 CUDA 工具箱,只要驱动装好就能执行,因此是上架自检与故障排查的第一步。输出分上下两段,上段是每张卡的汇总表,下段是进程与服务列表。

基本信息

适用平台Linux 与 Windows 同名程序,随 NVIDIA 驱动一起安装
依赖只需要驱动,不需要 CUDA 工具箱
权限查询普通用户即可,--gpu-reset 等操作需要 root
刷新方式-l 指定秒级滚动,或交给 watch 周期执行
配套用法-q 详细查询、--query-gpu 结构化输出、dmon 滚动汇总

常用形态

常用形态
nvidia-smi                     # 一次快照:显存、利用率与进程表
nvidia-smi -L                  # 只列 GPU 与 UUID,脚本里最常用
nvidia-smi -l 2                # 每 2 秒滚动输出,观察压测过程
nvidia-smi --query-gpu=index,name,memory.used,memory.total,utilization.gpu --format=csv
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv

典型使用场景

  • 新机器上架自检:确认卡被识别、驱动版本正确、显存容量符合采购单
  • 服务扩容前核实:确认目标卡上没有残留进程占用显存
  • 压测过程盯盘:观察利用率、温度与功耗是否触顶触发降频
  • 排 OOM:拿到占用显存的进程清单,再回查进程归属与启动命令
  • 容器排障:确认宿主驱动可见、容器透传后设备数量是否与预期一致
  • 脚本采集:用结构化查询输出 CSV,交给监控系统做长期趋势

输出逐段读法

字段含义异常提示
Driver Version驱动版本与框架或镜像要求的驱动不匹配时容器启动即失败
CUDA Version驱动支持的上限运行时版本注意这只是能力上限,不代表装了工具包
Memory-Usage已用与总显存已用接近总量时新请求会 OOM
GPU-Util计算单元利用率百分比长期为 0 但请求有延迟,怀疑瓶颈在 CPU 侧
Temp / Power温度与当前功耗长时间贴近阈值会触发降频,表现为吞吐下滑
Persistence-M持久化模式开关任务频繁拉起时建议开启,减少初始化开销
Processes占用显存的进程号与名称出现陌生进程先查归属,确认无主再处理

持续观察的两种写法

持续观察的两种写法
watch -n 1 nvidia-smi            # 全屏刷新,适合人工盯着看趋势
nvidia-smi dmon -s pucm -d 2     # 逐行输出功耗、利用率、显存与温度
nvidia-smi -q -d PERFORMANCE     # 查询降频原因,解释速度为何下降

持续盯盘看哪几项

  • 显存曲线:压测中若持续单调上升且不回落,先查请求是否正常释放,再怀疑泄漏
  • 利用率与吞吐是否同向:利用率上涨而吞吐不动,多半是批太小或调度环节有瓶颈
  • 温度与功耗是否贴阈值:贴近上限后时钟回落,吞吐会呈阶梯式下降
  • 进程表是否多出陌生条目:多实例共用一张卡时,先确认占用来源再判断容量
  • 降频原因:用详细查询看具体触发项,不要凭温度或功耗单点猜测
利用率高不代表显存够用,反过来也一样:容量问题看显存占用,效率问题看计算单元利用率,两个维度分开判断。
nvidia-smi 显示的显存占用包含分配器缓存的保留部分:保留量高于张量实际占用是正常现象,判断泄漏要看它是否随请求持续单调上涨。

易错点

  • 把利用率跑满当成故障:推理服务打满计算单元是正常状态,要看的是吞吐与延迟指标
  • 直接 kill 占用显存的进程:可能是其他同事的调试任务或在跑的业务容器,先查归属再决定
  • 只看单次快照下结论:显存与利用率波动大,至少连续观察一个完整压测周期
  • 用 CUDA Version 判断已装工具包:它只是驱动能力上限,宿主机可能根本没装工具箱
  • 在容器里排查却不对照宿主机:容器内可见设备受限,跨层核对才能定位是透传问题还是驱动问题

数据来源与参考

  • NVIDIA nvidia-smi 文档(docs.nvidia.com/deploy/nvidia-smi)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌