调试和故障排除
一般问题报告
在报告问题时,请务必包含
nvidia-bug-report.log.gz
- 由nvidia-bug-report.sh
生成dcgmi -v
的完整输出相关和/或请求的日志,如下所示
日志记录
本主题讨论了配置 DCGM 以生成详细日志的各种方法。
使用独立 Hostengine 启用日志记录
启动 nv-hostengine
时
添加
-f /path/to/log
参数以指定日志写入位置添加
--log-level DEBUG
参数以指定 DEBUG 日志记录
此示例将从独立主机引擎收集调试日志,持续其生命周期。日志文件将写入 /tmp/nv-hostengine.log
。示例
% sudo nv-hostengine -f /tmp/nv-hostengine.log --log-level DEBUG
使用嵌入式 Hostengine 启用日志记录
当使用嵌入式主机引擎时,如果以 root
用户或其他特权用户身份运行,请首先使用适当的命令更改为该用户,例如 sudo(8)
。在您运行 sudo
的同一会话中
使用
export __DCGM_DBG_FILE=/path/to/log
指定日志写入位置使用
export __DCGM_DBG_LVL=6
指定 DEBUG 日志记录使用
env | grep __DCGM_DBG
确认变量已设置运行所需的命令
此示例将在运行简短诊断时从嵌入式主机引擎收集调试日志。日志文件将写入 /tmp/embedded.log
。示例
% sudo -i
(prompts for password)
# export __DCGM_DBG_FILE=/tmp/embedded.log
# export __DCGM_DBG_LVL=6
# env | grep __DCGM_DBG
(output)
__DCGM_DBG_FILE=/tmp/embedded.log
__DCGM_DBG_LVL=6
# dcgmi diag -r short
...
启用诊断日志记录
诊断程序会生成额外的有用日志。通过 dcgmi
运行诊断程序时
添加
--debugLogFile /path/to/log
参数以指定日志写入位置添加
-d DEBUG
参数以指定 DEBUG 日志记录
此示例将从简短诊断收集调试日志。日志文件将写入 /tmp/nvvs.log
。示例
% dcgmi diag --debugLogFile /tmp/nvvs.log -d DEBUG
启用 NVML 日志记录
在某些情况下,NVIDIA 工程师可能会请求 NVML 日志以帮助调试。
如果以 root
用户或其他特权用户身份运行,请首先使用适当的命令更改为该用户,例如 sudo(8)
。在您运行 sudo
的同一会话中
使用
export __NVML_DBG_FILE=/path/to/log
指定日志写入位置使用
export __NVML_DBG_LVL=DEBUG
指定 DEBUG 日志记录使用
env | grep __NVML_DBG
确认变量已设置在同一会话中,添加任何其他必要的环境变量(即,如果您正在运行嵌入式主机引擎)
运行所需的命令
注意
如果使用独立主机引擎,则应为主机引擎和所需命令指定单独的 __NVML_DBG_FILE
。请参阅以下示例。
此示例将从独立主机引擎收集 NVML 日志和调试日志,以及来自长时间诊断的 NVML 和调试日志。主机引擎的 NVML 日志将写入 /tmp/hostengine.nvml.log
,诊断程序的 NVML 日志将写入 /tmp/nvvs.nvml.log
。示例
% sudo -i
(prompts for password)
# export __NVML_DBG_FILE=/tmp/hostengine.nvml.log
# export __NVML_DBG_LVL=DEBUG
# env | grep __NVML_DBG
(output)
__NVML_DBG_FILE=/tmp/hostengine.nvml.log
__NVML_DBG_LVL=DEBUG
# nv-hostengine -f /tmp/nv-hostengine.log --log-level DEBUG
# export __NVML_DBG_FILE=/tmp/nvvs.nvml.log
# env | grep __NVML_DBG
(output)
__NVML_DBG_FILE=/tmp/nvvs.nvml.log
__NVML_DBG_LVL=DEBUG
# dcgmi diag -r long --debugLogFile /tmp/nvvs.log -d DEBUG
...