结构化查询的用途
默认输出是给人看的排版,脚本处理起来要额外解析。使用结构化查询可以把指定字段直接输出成 CSV,方便采集到监控系统或写进巡检脚本。字段覆盖面很广:显存、利用率、温度、功耗、时钟与降频状态都能取到。写成脚本时要同时考虑字段名与单位选项。
常用查询
常用查询
# 一次取齐巡检常用字段
nvidia-smi --query-gpu=index,name,memory.total,memory.used,utilization.gpu,temperature.gpu,power.draw --format=csv
# 采集脚本常用:去掉表头与单位,便于程序解析
nvidia-smi --query-gpu=index,utilization.gpu,memory.used --format=csv,noheader,nounits
# 查本机支持哪些字段
nvidia-smi --help-query-gpu | head -40字段速查
| 字段 | 含义 |
|---|---|
| memory.total / memory.used | 显存总量与已用 |
| utilization.gpu | 计算单元利用率百分比 |
| temperature.gpu | 核心温度 |
| power.draw | 瞬时功耗 |
| clocks.current.sm | 当前计算时钟频率 |
| index / uuid | 设备编号与唯一标识 |
典型使用场景
- 巡检脚本:批量采集多台机器的显存与温度,汇总成一张表
- 容量趋势:定时采集显存水位,作为扩容决策的输入
- 压测记录:按固定间隔采样功耗与频率,与吞吐数据对齐分析
- 上架核对:按名称与显存字段核对到货卡型是否与采购单一致
- 故障取证:保留异常时间段的字段快照,供后续复盘比对
采集脚本要点
- 固定字段清单:把巡检需要的字段写在一处,避免各处脚本口径不一致
- 加上免表头与免单位选项:输出直接是数值,省去一轮文本清洗
- 统一采样间隔:不同机器与不同时间点采样间隔一致,趋势才有可比性
- 异常留痕:采集失败或字段缺失时记录原始输出,而不是静默跳过
- 结果落地:按机器与时间归档,容量趋势分析依赖历史数据
脚本里加上去掉表头与单位的选项可以少写一轮文本解析:输出直接是数字列表,接入监控更省事。
字段名会随驱动版本更新增补:采集脚本上线前在本机核对一次可用字段,避免升级后采集成片报错。