设备监控(Device Monitoring)
本文为NVIDIA-SMI系列命令详解第十三篇-设备监控(2),介绍和演示了nvidia-smi 命令的设备监控选项daemon和replay及其附加参数,命令如下:
nvidia-smi daemon
nvidia-smi replay
将nvidia-smi daemon和nvidia-smi replay放在一起的介绍的原因是,daemon保存的日志文件是编码压缩之后的,普通编辑器无法查看,只能通过replay选项来查看。
统计输出信息各字段解释
统计信息以如下CSV格式输出
#Date Time gpu pwr gtemp mtemp sm mem enc dec mclk pclk pviol tviol fb bar1 sbecc dbecc pci rxpci txpci
#YYYYMMDD HH:MM:SS Idx W C C % % % % MHz MHz % bool MB MB errs errs errs MB/s MB/s
20220803 11:52:16 0 59 28 45 0 0 0 0 1593 1155 0 0 0 1 0 0 0 0 0
对应解释如下表所示:
采样项 | 含义 | 单位 | 示例 |
---|---|---|---|
Date | 日期 | YYYYMMDD | 20220803 |
Time | 时间 | HH:MM:SS | 11:52:16 |
gpu | GPU id | Idx | 0 |
pwr | GPU 功率 | W | 59 |
gtemp | GPU 温度 | C | 28 |
mtemp | 内存温度 | C | 45 |
sm | SM 流式多处理器利用率 | % | 0 |
mem | 内存利用率 | % | 0 |
enc | 视频编码使用率 | % | 0 |
dec | 视频解码使用率 | % | 0 |
mclk | 内存时钟频率 | MHz | 1593 |
pclk | 处理器时钟频率 | MHz | 1155 |
pviol | 功率上限违规 | % | 0 |
tviol | 热上限违规 | bool | 0 |
fb | 板载帧缓冲内存信息 | MB | 0 |
bar1 | fb内存映射信息 | MB | 1 |
sbecc | 单位ecc错误数 | errs | 0 |
dbecc | 双位ecc错误数 | errs | 0 |
pci | pci错误数 | errs | 0 |
rxpci | pci设备接收数据速率 | MB/s | 0 |
txpci | pci设备发送数据速率 | MB/s | 0 |
nvidia-smi daemon 后台运行进程记录设备统计信息
后台运行进程监控一个或者多个GPU设备,监控数据会被压缩并存放到持久存储。 监控仅限于最多 4 台设备。 如果未指定设备,则自然枚举下最多支持的前 4 个设备(从 GPU 索引 0 开始)用于监控。
设备监控选项,支持的参数列表如下:
[-i | --id]: 驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、
GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID.
如果需要指定多个设备,可以使用逗号","将不同的id隔开。
[-d | --delay]: 采样的时间间隔,单位:秒 [默认:10秒]
[-s | --select]: 展示一个或者多个采样项 [默认:puc]
支持的采样项如下:
p - 功率和温度
u - GPU 利用率
c - 处理器时钟频率和内存时钟频率
v - 功率上限违规和热上限违规
m - FB 和 Bar1 内存
e - ECC 错误和 PCIe 重放错误
t - PCIe Rx 吞吐量和 Tx 吞吐量
[-p | --path]: 保存文件的目录[默认]:
Unix - /var/log/nvsats
Windows - C:/Program Files/NVIDIA Corporation/NVSMI
[-j | --join]: 用户提供的追加到日志文件名后面的字符串。
[-t | --term]: 终止守护进程[最大努力]
[-h | --help]: 展示帮助信息
注意:
支持 x64 和 ppc64 架构的裸机 Linux 下新的 GPU 。
支持 Tesla、GRID、Quadro 系列产品。
支持 Kepler 系列中部分 GeForce 产品。
实验功能。
各参数详解
-i 指定GPU
id是驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID。 如果需要指定多个设备,可以使用逗号”,”将不同的id隔开。
运行示例
查看设备id为0的设备统计信息 运行示例:
nvidia-smi daemon -i 0
通过 nvidia-smi replay命令查看保存的日志文件,可以看到 GPU Index 为 0 的卡 功率 59W。GPU温度 28度,显存温度45度,sm 流式多处理器 利用率 0%。 显存利用率 0%。编码率 0%,解码率 0%。 内存时钟 1593 MHz, 处理器时钟 1155 MHz。
-d 指定采样时间间隔(默认10秒)
指定采样时间间隔,默认10秒采样一次。
运行示例
设置采样时间间隔为5秒
nvidia-smi daemon -i 0 -d 5
通过 nvidia-smi replay命令查看保存的日志文件,采样时间间隔变为5秒一次。
-s 展示特定的采样项(默认值puc)
支持的采样项:
-
p – 功率和温度
-
u – GPU 利用率
-
c – 处理器时钟频率和内存时钟频率
-
v – 功率上限违规和热上限违规
-
m – FB 和 Bar1 内存
-
e – ECC 错误和 PCIe 重放错误
-
t – PCIe Rx 吞吐量和 Tx 吞吐量
-
运行示例
后台监控设备为0的GPU的 所有 支持 的 信息
nvidia-smi daemon -i 0 -s pucvmet
通过nvidia-smi replay 命令查询,可以看到,采集和展示了所有的支持的采样项。
-p 日志文件保存目录
保存文件的目录[默认]:
-
Unix – /var/log/nvsats
-
Windows – C:/Program Files/NVIDIA Corporation/NVSMI
运行示例
设置日志输出目录为当前用户 home 目录
nvidia-smi daemon -p ~
ls ~
可以看到日志文件被保存到 home 目录下了。
-j 在日志文件后追加自定义字符串
在日志文件后追加自定义字符串。
运行示例
设备id为0的GPU统计信息日志文件后追加”yellow_meta”自定义字符。
nvidia-smi daemon -i 0 -j yellow_meta
可以看到日志文件后面自动追加了yellow_meta字符串。
-t 终结监控守护进程
终结监控守护进程。
运行示例
终结监控守护进程。
nvidia-smi daemon -i 0 -j yellow_meta
ps -ef | grep nvidia-smi |grep daemon
nvidia-smi daemon -t
ps -ef | grep nvidia-smi |grep daemon
第一条命令执行启动守护进程监控设备index为0的GPU的信息。
第二条命令执行 nvidia-smi daemon 后再执行 ps -ef | grep 命令,能够查看到 nvidia-smi daemon 程序在后台运行。
第三条命令执行 nvidia-smi daemon -t 之后,尝试终结守护进程。
第四条命令再执行 ps -ef | grep 命令,已经找不到nvidia-smi daemon 的程序,说明守护监控进程已经被终结了。
-h 打印帮助信息
运行示例
展示 nvidia-smi daemon 的帮助信息
nvidia-smi daemon -h
对应内容如下:
root@YellowMeta-A100:~# nvidia-smi daemon -h
Runs as a background process to monitor one or more GPUs, the
monitoring data is compressed and logged to a persistent storage.
Monitoring is limited to a maximum of 4 devices. If no devices
are specified, then up to first 4 supported devices under natural
enumeration (starting with GPU index 0) are used for monitoring.
It is supported on Tesla, GRID, Quadro and limited GeForce products
for Kepler or newer GPUs under x64 and ppc64 bare metal Linux.
This is an experimental feature.
Usage: nvidia-smi daemon [options]
Options include:
[-i | --id]: Comma separated Enumeration index, PCI bus ID or UUID
[-d | --delay]: Collection delay/interval in seconds [default=10secs]
[-s | --select]: One or more metrics [default=puc]
Can be any of the following:
p - Power Usage and Temperature
u - Utilization
c - Proc and Mem Clocks
v - Power and Thermal Violations
m - FB and Bar1 Memory
e - ECC Errors and PCIe Replay errors
t - PCIe Rx and Tx Throughput
[-p | --path]: Path of directory to write to [default]:
Unix - /var/log/nvstats
Windows - C:/Program Files/NVIDIA Corporation/NVSMI
[-j | --join]: User provided string to append the log file name
[-t | --term]: Terminate Daemon [Best Effort]
[-h | --help]: Display help information
nvidia-smi replay 查看后台监控进程记录的设备统计信息
nvidia-smi replay
回放/提取由nvidia-smi daemon产生的日志文件中的部分或者全部记录。
设备监控选项,支持的参数列表如下:
[-i | --id]: 驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、
GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID.
如果需要指定多个设备,可以使用逗号","将不同的id隔开。
[-s | --select]: 展示一个或者多个采样项 [默认:puc]
支持的采样项如下:
p - 功率和温度
u - GPU 利用率
c - 处理器时钟频率和内存时钟频率
v - 功率上限违规和热上限违规
m - FB 和 Bar1 内存
e - ECC 错误和 PCIe 重放错误
t - PCIe Rx 吞吐量和 Tx 吞吐量
[-f | --filename]: 需要提取/回放的日志文件的完整路径[必须]
[-b | --begin]: 日志文件的开始时间 (HH:MM:SS). [默认=0]
[-e | --end]: 日志文件的结束时间 (HH:MM:SS). [默认=0]
[-r | --redirect]: 将重放信息输出文件的路径信息(明文存储)
[-h | --help]: 展示帮助信息
注意:
支持 x64 和 ppc64 架构的裸机 Linux 下新的 GPU 。
支持 Tesla、GRID、Quadro 系列产品。
支持 Kepler 系列中部分 GeForce 产品。
实验功能。
各参数详解
-i 指定GPU
id是驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID。 如果需要指定多个设备,可以使用逗号”,”将不同的id隔开。
运行示例
查看设备id为0的设备统计信息 运行示例:
nvidia-smi daemon -i 0
通过 nvidia-smi replay命令查看保存的日志文件,可以看到 GPU Index 为 0 的卡 功率 59W。GPU温度 28度,显存温度45度,sm 流式多处理器 利用率 0%。 显存利用率 0%。编码率 0%,解码率 0%。 内存时钟 1593 MHz, 处理器时钟 1155 MHz。
-s 展示特定的采样项(默认值puc)
支持的采样项:
-
p – 功率和温度
-
u – GPU 利用率
-
c – 处理器时钟频率和内存时钟频率
-
v – 功率上限违规和热上限违规
-
m – FB 和 Bar1 内存
-
e – ECC 错误和 PCIe 重放错误
-
t – PCIe Rx 吞吐量和 Tx 吞吐量
-
运行示例
后台监控设备为0的GPU的 所有 支持 的 信息
nvidia-smi replay -i 0 -s pucvmet
通过nvidia-smi replay 命令查询,可以看到,采集和展示了所有的支持的采样项。
-f 指定需要回放的日志文件的完整路径
指定需要回放的日志文件的完整路径,默认情况下,日志文件保存目录如下:
-
Unix – /var/log/nvsats
-
Windows – C:/Program Files/NVIDIA Corporation/NVSMI
运行示例
查看 home 目录下的日志文件
nvidia-smi replay -f ~/nvstats-20220822
可以看到home目录下日志文件~/nvstats-20220822中的监控项按时间依次展示。
-b 设置查看日志的开始时间
设置查看日志的开始时间,格式(HH:MM:SS)。
运行示例
查看设备id为0的GPU统计信息日志文件,设置开始时间为 05:00:00
ls -al /var/log/nvstats/
nvidia-smi replay -i 0 -f /var/log/nvstats/nvstats-20220823 -b 05:00:00
第一条命令查看当前已经保存的设备监控信息日志文件列表(默认路径)。
第二条命令指定了开始时间为 05:00:00,从打印的回放信息来看,设备采样时间间隔为5s,05:00:02是指令时间之后的第一条记录数据。
由于只指定了开始时间,未指定结束时间,因此最后需要 Ctrl + C 中断输出。
-e 设置查看日志的结束时间
设置查看日志的开始时间,格式(HH:MM:SS)。
运行示例
查看设备id为0的GPU统计信息日志文件,设置开始时间为 05:00:00,结束时间为05:00:20。
ls -al /var/log/nvstats/
nvidia-smi replay -i 0 -f /var/log/nvstats/nvstats-20220823 -b 05:00:00 -e 05:00:20
第一条命令查看当前已经保存的设备监控信息日志文件列表。
第二条命令指定了开始时间为 05:00:00,结束时间为 05:00:20 之间的采样数据。从打印的回放信息来看,设备采样时间间隔为5s,指令时间区间内一共有4条记录数据。
-r 重定向监控记录到文件
将重放信息输出文件的路径信息(明文存储)。之前的监控文件中的内容是编码之后的,无法通过编辑器直接查看,重定向之后的文件内的监控信息是可以通过编辑器直接查看的。
运行示例
查看 home 目录下的日志文件
nvidia-smi replay -f ~/nvstats-20220822 -r demo.out
可以看到home目录下日志文件~/nvstats-20220822中的监控项被重定向到demo.out文件中,其输出结果与nvidia-smi replay -f ~/nvstats-20220822结果相同。
-h 打印帮助信息
运行示例
展示nvidia-smi replay的帮助信息
nvidia-smi replay -h
对应内容如下:
root@YellowMeta-A100:~# nvidia-smi replay -h
Replay/Extract all or parts of log file generated by the daemon.
This is an experimental feature.
Usage: nvidia-smi replay [options]
Options include:
[-i | --id]: Comma separated Enumeration index
[-s | --select]: One or more metrics [default=puc]
Can be any of the following:
p - Power Usage and Temperature
u - Utilization
c - Proc and Mem Clocks
v - Power and Thermal Violations
m - FB and Bar1 Memory
e - ECC Errors and PCIe Replay errors
t - PCIe Rx and Tx Throughput
[-f | --filename]: Complete path of the log filename to replay/extract [mandatory]
[-b | --begin]: Start time (HH:MM:SS). [default=0] for start of file
[-e | --end]: End timestamp (HH:MM:SS). [default=0] for end of file
[-r | --redirect]: File name to redirect replay information
[-h | --help]: Display help information