大家好,我是 Ai 学习的老章
咱也过上好日子了,H200x8 get✅
之前写过系列文章搭建 AI 服务器
本文简单看看 Nvidia-smi 中可以看出哪些信息
nvidia-smi (NVIDIA System Management Interface) 是一个基于命令行的实用工具,旨在帮助管理和监控 NVIDIA GPU 设备。它是 NVIDIA 驱动程序附带的核心组件,对于任何使用 NVIDIA GPU 的用户,无论是进行深度学习、科学计算、还是高性能计算(HPC),nvidia-smi 都是一个不可或缺的工具。
通过它,你可以实时获取 GPU 的各项状态信息,并对某些参数进行调整。
二、解读默认输出
在终端中直接输入 nvidia-smi,你会看到一个信息丰富的仪表盘。让我们逐一解析其中的内容。
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA A100-SXM... On | 00000000:01:00.0 Off | 0 | | N/A 30C P0 72W / 400W | 1024MiB / 40960MiB | 0% Default | | | | Disabled | +-------------------------------+----------------------+----------------------+ | 1 NVIDIA A100-SXM... On | 00000000:02:00.0 Off | 0 | | N/A 31C P0 75W / 400W | 1024MiB / 40960MiB | 5% Default | | | | Disabled | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 12345 C /usr/bin/python 1000MiB | | 1 N/A N/A 54321 C /usr/bin/python 1000MiB | +-----------------------------------------------------------------------------+1. 标题栏NVIDIA-SMI Version :
nvidia-smi工具本身的版本。Driver Version : 已安装的 NVIDIA 驱动版本。这是关键信息,因为它决定了硬件支持和部分软件兼容性。
CUDA Version : 驱动程序支持的最高 CUDA 版本。注意,这不代表你环境中安装的 CUDA Toolkit 版本,但你安装的 CUDA Toolkit 版本不能高于此版本。
GPU : GPU 的唯一编号(从 0 开始)。
Name : GPU 的型号名称,例如
NVIDIA A100或GeForce RTX 4090。Persistence-M : 持久模式 (Persistence Mode) 是否开启 (
On/Off)。开启后,即使没有程序使用 GPU,驱动也会保持加载状态,可以减少 GPU 任务启动的延迟。对于服务器环境,建议开启。Bus-Id : GPU 在主板上的物理位置(PCIE 总线地址),用于唯一标识物理设备。
Disp.A : Display Active,表示是否有显示器连接到该 GPU。
Fan : 风扇转速百分比。对于被动散热或水冷的服务器 GPU,可能会显示
N/A。Temp : GPU 核心当前温度(摄氏度)。
Perf : Performance State,性能状态。从
P0(最高性能) 到P12(最低性能) 不等。Pwr:Usage/Cap : 当前功耗 / 设计最大功耗。例如
72W / 400W。Memory-Usage : 已使用的显存 / 总显存。例如
1024MiB / 40960MiB。这是监控模型是否能载入的关键指标。GPU-Util : GPU 利用率百分比。反映了计算核心的繁忙程度。
Compute M. : 计算模式 (Compute Mode)。
Default(默认),Exclusive_Process(独占进程),Prohibited(禁止)。MIG M. : 多实例 GPU (Multi-Instance GPU) 模式是否启用。
这个表格列出了当前正在使用 GPU 的所有进程。
GPU : 进程所使用的 GPU 编号。
PID : 进程的系统 ID。
Type : 进程类型。
C(Compute) 代表计算任务,G(Graphics) 代表图形任务。Process name : 进程的名称或命令路径。
GPU Memory Usage : 该进程占用的显存大小。
nvidia-smi 提供了丰富的参数用于查询和控制。
1. 监控类指令 持续刷新监控
如果你想动态地监控 GPU 状态,而不是只看一个静态快照,可以使用循环查询参数。
-l <秒数>或--loop= <秒数>按指定的秒数间隔刷新并显示信息。例如,每秒刷新一次:
nvidia-smi -l 1按
Ctrl+C退出。
使用 -q 或 --query 参数可以获取非常详细的、可定制的信息,非常适合用于编写脚本。
-q或--query查询并显示 GPU 的详细信息,比默认输出更全面。
--query-gpu= <属性>查询指定的 GPU 属性。你可以指定一个或多个属性,用逗号分隔。
--format= <格式>控制输出格式,通常与 --query-gpu 配合使用。常用格式有 csv, noheader, nounits。
实用示例:
以 CSV 格式获取所有 GPU 的时间戳、名称、温度、利用率和已用显存,不带表头和单位。
nvidia-smi --query-gpu=timestamp,name,temperature.gpu,utilization.gpu,memory.used --format=csv,noheader,nounits输出可能如下:
2025/08/03 12:00:00.000, NVIDIA A100-SXM4-40GB, 30, 0, 1024 2025/08/03 12:00:00.000, NVIDIA A100-SXM4-40GB, 31, 5, 1024这对于自动化监控和日志记录非常有用。
2. 管理与控制类指令
警告: 修改 GPU 状态可能影响系统稳定性,请谨慎操作。
持久模式
nvidia-smi -pm 1开启 0 号 GPU 的持久模式。
nvidia-smi -i 0 -pm 1与上一条命令等效,-i 用于指定 GPU 编号。
nvidia-smi -pl <瓦数>或--power-limit= <瓦数>设置 GPU 的最大功耗限制,例如 nvidia-smi -pl 300。这对于在功耗受限的环境中运行 GPU 非常有用。需要管理员权限。
nvidia-smi -lgc <频率>或--lock-gpu-clocks= <频率>锁定 GPU 核心频率。
nvidia-smi -rgc或--reset-gpu-clocks重置 GPU 核心频率到默认值。
-L或--list-gpus以列表形式简洁地显示所有检测到的 GPU 及其 UUID。
nvidia-smi -L输出:
GPU 0: NVIDIA A100-SXM4-40GB (UUID: GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) GPU 1: NVIDIA A100-SXM4-40GB (UUID: GPU-yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy)-h或--help显示帮助信息,列出所有可用的参数和说明。
检查可用显存
在运行深度学习任务前,查看默认输出中的 Memory-Usage,确保有足够的显存。
找出占用 GPU 的“元凶”
如果 GPU 利用率很高,但你不知道是哪个程序在运行,查看底部的进程列表,找到对应的 PID,然后可以使用 ps -ef | grep 或 kill 来管理该进程。
编写自动化监控脚本
使用 --query-gpu 和 --format 结合 crontab 或其他调度工具,可以轻松实现对 GPU 集群的长期监控和数据记录。
nvidia-smi 是一个功能强大且灵活的工具。熟练掌握它的使用,不仅能让你对 GPU 的状态了如指掌,还能通过脚本化查询和控制,极大地提升 GPU 资源的管理效率。无论是初学者还是资深专家,都应该将它作为日常工具箱中的必备利器。
这台机器可能配置起来就稍微麻烦点,直接上生产环境了,配置过程中可能还会产出几篇文章。
下一篇,讲讲如何在内网搭建大模型镜像源。
热门跟贴