方案一:Netdata 接入 RTX5090,可视化记录所有显卡运行日志(主推)
可以采集:GPU 利用率、显存占用、温度、功耗、风扇转速、PCIe 带宽、显存泄漏、降频过热异常,永久留存历史曲线,面板直接查看回溯日志Netdata。
步骤 1:开启 Netdata nvidia-smi 采集插件
- 编辑插件配置文件
bash
sudo nano /etc/netdata/python.d.conf
- 找到
nvidia_smi字段,修改为开启(去掉 #注释):
yaml
nvidia_smi: yes
- 保存退出:
Ctrl+O→ 回车 →Ctrl+X
步骤 2:微调采集间隔(按需)
bash
sudo nano /etc/netdata/python.d/nvidia_smi.conf
默认 5 秒采集一次,数值越小日志越精细、占用轻微升高,推荐配置:
yaml
update_every: 5
步骤 3:重启 Netdata 生效
bash
sudo systemctl restart netdata
步骤 4:网页面板查看 RTX5090 监控日志
- 浏览器打开:
http://本机IP:19999(你当前访问的面板地址) - 右侧菜单栏依次展开:
Hardware→NVIDIA GPUs✅ 即可看到:
- 单卡 RTX5090 全指标实时曲线
- 历史时序日志(默认留存数小时~数天,可扩容存储)
- 温度、功耗、显存、GPU 负载全程记录轨迹
步骤 5:日志留存扩容(想保存几周 / 数月历史日志)
Netdata 默认内存存储,重启丢失历史,修改为磁盘持久化存储:
bash
sudo nano /etc/netdata/netdata.conf
搜索 memory mode,修改:
ini
[global]
memory mode = dbengine
page cache size = 64
dbengine disk space = 2048 # 分配2G磁盘存放GPU时序日志
重启服务:
bash
sudo systemctl restart netdata
2G 空间可完整留存7~15 天每秒级显卡运行日志,足够日常排查 AI 训练、推理显存溢出、过热降频问题。
步骤 6:Netdata 显卡采集日志排错(看不到 GPU 数据时用)
查看插件运行日志,定位采集失败原因:
bash
perl
# 查看nvidia采集器运行日志
grep nvidia_smi /var/log/netdata/collector.log
常见报错:权限不足、nvidia-smi 路径未加入环境变量,按需修复即可。
方案二:nvidia-smi 原生命令 导出离线日志(CSV / 文本存档)
适合:长时间跑大模型、需要导出日志复盘训练全程、离线备份日志文件。
1. 最简实时日志记录(每 1 秒采样,写入 txt)
bash
# -n 1 = 每秒采集1次;>> 追加写入日志文件
nvidia-smi -n 1 >> ~/gpu_5090_run_log.txt
停止记录:按下 Ctrl+C打开日志文件即可查看全程每一秒显卡状态。
2. 结构化 CSV 日志(推荐,Excel 可打开分析)
导出带时间戳、温度、功耗、显存、负载结构化数据,最适合事后数据分析:
bash
# 每2秒采集一次,输出CSV格式日志
nvidia-smi --query-gpu=timestamp,index,name,temperature.gpu,power.draw,utilization.gpu,memory.used,memory.total,fan.speed \
--format=csv,noheader,nounits -n 2 -f ~/gpu_5090_detail_log.csv
字段说明:
表格
| 字段 | 含义 |
|---|---|
| timestamp | 采集时间戳 |
| temperature.gpu | 显卡核心温度 (℃) |
| power.draw | 实时功耗 (W) |
| utilization.gpu | GPU 算力占用率 (%) |
| memory.used | 已用显存 (MB) |
3. nvidia-smi dmon 轻量守护日志(低开销后台记录)
系统资源占用极低,适合 7*24 小时后台挂机记录:
bash
# -d 2:2秒间隔;-f 指定日志文件
nvidia-smi dmon -d 2 -f ~/gpu_daemon_log.txt
4. 定时分段日志(防止单文件过大)
Shell 脚本,按天自动分割日志,避免单个日志文件臃肿:
bash
#!/bin/bash
while true
do
# 按日期生成日志文件
LOG_FILE=~/gpu_log_$(date +%Y%m%d).csv
nvidia-smi --query-gpu=timestamp,temperature.gpu,power.draw,utilization.gpu,memory.used \
--format=csv,noheader,nounits >> $LOG_FILE
sleep 2
done
保存为 gpu_log.sh,后台运行:
bash
chmod +x gpu_log.sh
nohup ./gpu_log.sh &
三类关键异常报错日志查看(显卡故障 / 崩溃 / 掉卡排查)
1. 内核 GPU 硬件日志(显卡掉驱动、硬件报错、PCIe 异常)
bash
# 筛选所有NVIDIA内核消息
dmesg | grep -i nvidia
# 实时滚动查看最新硬件报错
dmesg -w | grep -E "nvidia|GPU"
2. Xorg 显示服务日志(桌面端显卡渲染异常、黑屏、驱动崩溃)
bash
# X11桌面日志
cat /var/log/Xorg.0.log
# Wayland桌面日志
journalctl -u gdm | grep nvidia
3. 系统服务全盘 NVIDIA 驱动日志
bash
journalctl -k | grep nvidia
进阶:配置显卡异常告警(Netdata)
- Netdata 面板 → 顶部
Alerts - 新建告警规则,常用阈值:
- GPU 温度>85℃ 触发高温告警
- 显存占用>95% 触发显存溢出预警
- GPU 利用率长时间 0% 判定显卡离线掉卡支持邮件推送告警,及时发现显卡异常。
日常使用建议
- 长期监控 + 可视化回看:优先 Netdata 方案;
- 单次 AI 训练任务留存复盘日志:用 CSV 导出方案;
- 显卡死机、掉驱动硬件排查:查看
dmesg内核日志。