msnpureport工具使用
工具介绍
- 导出Device侧的相关日志和文件,包括slog日志、syslog日志、黑匣子、Stackcore文件和事件调度模块的维测信息。导出的日志和文件将存储到运行msnpureport工具的路径下以时间戳命名的子目录中,且slog日志、syslog日志、黑匣子、Stackcore文件和事件调度模块的维测信分别存储到slog、message、hisi_logs、stackcore和event_sched文件夹下。
- 查询和设置Device侧slog系统类日志的级别。
- msnpureport工具仅适用于Ascend EP场景。
- msnpureport工具不支持算力切分容器场景。
- 非算力切分容器场景,msnpureport工具仅支持查询和设置日志级别。
- 不支持多个用户同时运行msnpureport工具。
- msnpureport工具不支持增量导出日志,如果用户想避免老旧日志的影响,提高问题定位的效率,可以定期通过msnpureport工具获取Device侧日志,并自行制作脚本实现日志去重处理。
导出Device侧的相关日志和文件
- 登录Host侧服务器。
- 获取msnpureport工具。
msnpureport工具在驱动Driver的安装目录下,路径为“Driver安装目录/driver/tools/msnpureport”。
- 在某个有读、写、执行权限的目录(如“/var/log/npu/report”,下文以此路径为例)下执行如下命令,运行msnpureport工具。
Driver安装目录/driver/tools/msnpureport [options]
在加锁的目录下(使用lsattr命令查看目录属性,有“i”选项的为加锁目录),用户没有权限运行msnpureport工具。如果用户想在该目录下运行msnpureport工具,可以通过chattr -i <加锁的目录>命令,将目录的“i”选项撤销。工具运行完后建议通过chattr +i <加锁的目录>命令,将目录的“i”选项加上。为了安全起见,不建议在加锁目录中运行工具。
其中[options]支持的参数及解释请参见表1。
表1 参数说明 参数
说明
举例
不指定任何参数
导出所有日志和文件,包括:
- slog日志。
- syslog日志。
- Stackcore文件。
- 黑匣子日志。
- 事件调度模块的维测信息。
- 模块日志
Driver安装目录/driver/tools/msnpureport
-a或--all
导出所有日志、文件以及黑匣子设备事件信息,包括:
- slog日志。
- syslog日志。
- Stackcore文件。
- 黑匣子日志、黑匣子设备事件信息。
- 事件调度模块的维测信息。
- 模块日志
Driver安装目录/driver/tools/msnpureport -a
-f或--force
导出所有日志、文件以及黑匣子相关信息,包括:
- slog日志。
- syslog日志。
- Stackcore文件。
- 黑匣子日志、黑匣子设备事件信息、黑匣子存储空间中的历史维测信息。
- 事件调度模块的维测信息。
- 模块日志
Driver安装目录/driver/tools/msnpureport -f
-t或--type
指定导出的日志类型,取值为:
- 0:导出所有类型日志,包括slog日志、syslog日志、Stackcore文件、黑匣子日志、事件调度模块的维测信息、模块日志。
- 1:slog日志、syslog日志和事件调度模块的维测信息、模块日志。
- 2:黑匣子日志。
- 3:Stackcore文件。
Driver安装目录/driver/tools/msnpureport -t 1
注:导出的日志和文件保存路径分别为:slog日志,slog目录;syslog日志,message目录;Stackcore文件,stackcore目录;黑匣子日志、黑匣子设备事件信息、黑匣子存储空间中的历史维测信息,hisi_logs目录;事件调度模块的维测信息,event_sched目录。
导出日志说明
- slog日志:“/var/log/npu/report/*/slog”,“*”为时间戳,其具体日志目录如下:
存储目录
说明
dev-os-id/xxx/device-os/device-os_*.log
Device侧Control CPU上的系统类日志。
说明:路径中xxx表示以下目录:debug、run、operation、security。
dev-os-id/xxx/device-app-pid/device-app-pid_*.log
Device侧应用类日志。仅当Device侧应用类日志回传到Host侧失败时,才会在Device侧存储该日志。
说明:路径中xxx表示以下目录:debug、run、operation、security。
dev-os-id/device-id/device-id_*.log
Device侧非Control CPU上的系统类日志。
dev-os-id/slogd/slogdlog
维测日志。记录日志工具自身的运行信息,用于日志工具自身问题定位。
- syslog日志:“/var/log/npu/report/*/message”
syslog日志表示调用syslog接口记录Device侧其他组件产生的日志,“*”为时间戳。
- 黑匣子:“/var/log/npu/report/*/hisi_logs”
导出的黑匣子日志、黑匣子的设备事件信息和黑匣子存储空间中的历史维测信息均保存在该目录下,“*”为时间戳。
- Stackcore文件:“/var/log/npu/report/*/stackcore”
通过msnpureport工具导出Stackcore文件后,可以参考《黑匣子日志参考》“Stackcore文件解析定位”章节对Stackcore文件进行后续的分析处理,“*”为时间戳。
- 事件调度模块的维测信息:“/var/log/npu/report/*/event_sched”,“*”为时间戳。
- 模块日志: “/var/log/npu/report/*/module_info”,“*”为时间戳。
查询和设置Device侧slog系统类日志级别
- 登录Host侧服务器.
- 获取msnpureport工具。
msnpureport工具在驱动Driver的安装目录下,路径为“Driver安装目录/driver/tools/msnpureport”。
- 在某个有读、写、执行权限的目录(如“/var/log/npu/report”)下,执行如下命令查询和设置日志级别。
Driver安装目录/driver/tools/msnpureport [options]
Driver安装目录/driver/tools/msnpureport [options] -d <device-id>
其中[options]为查询和设置日志级别的各个参数,[options]各个参数及其他参数的解释请参见表2。
非算力切分容器场景下,执行命令行时,需增加--docker参数标识为容器内执行命令。例如:
Driver安装目录/driver/tools/msnpureport --docker -r
表2 参数说明 参数
说明
举例
-g <level>或
--global <level>
设置全局级的日志级别。- debug:表示DEBUG级别。
- info:表示INFO级别。
- warning:表示WARNING级别。
- error:表示ERROR级别。
- null:表示NULL级别,不输出日志。
Driver安装目录/driver/tools/msnpureport -g info
-m <module:level>或
--module <module:level>
设置模块级的日志级别。
- module:模块名称。例如SLOG等。
- level:模块级别。取值为:
- debug:表示DEBUG级别。
- info:表示INFO级别。
- warning:表示WARNING级别。
- error:表示ERROR级别。
- null:表示NULL级别,不输出日志。
Driver安装目录/driver/tools/msnpureport -m SLOG:error
-e <level>或
--event <level>
设置是否开启Event日志。- enable:开启Event日志。
- disable:不开启Event日志。
Driver安装目录/driver/tools/msnpureport -e disable
-d <device-id>或
--device <device-id>
指定Device ID(逻辑ID),默认为0。通过指定Device ID设置对应Device的日志级别。
指定的Device ID是指逻辑上的Device ID而不是物理上的Device ID。须先判断逻辑ID后再设置对应的日志级别,详细步骤请参见逻辑ID判断。
Driver安装目录/driver/tools/msnpureport -g warning -d 1
-r或--request
查询Device侧slog系统类日志的级别,包括全局级、模块级和是否开启Event日志。如果不指定Device ID,默认查询Device 0的日志级别。
Driver安装目录/driver/tools/msnpureport -r
查询后显示的级别示例如下:
The system log level of device_id:0 is as follows: [global] INFO [event] ENABLE [module] SLOG:INFO IDEDD:INFO DVPP:INFO CCE:INFO HDC:INFO DRV:INFO MDCDEFAULT:INFO DEVMM:INFO KERNEL:INFO LIBMEDIA:INFO ASCENDDK:INFO ROS:INFO HCCP:INFO ROCE:INFO PROFILING:INFO APP:INFO TDT:INFO MD:INFO MB:INFO ME:INFO BBOX:INFO TS:INFO TSDUMP:INFO LP:INFO
-h或--help
用于打印帮助信息。
Driver安装目录/driver/tools/msnpureport -h
逻辑ID判断
- 查询物理ID。
使用npu-smi info命令查看到的设备上的NPU Device ID即为物理ID。假设物理ID的取值范围是0~7,Device0~Device3四个为一组Device4~Device7四个为一组。由于同组的Device在同一个OS上,共用一个日志配置文件,所以日志级别也相同,只需要修改其中一个Device日志级别,那么同组其他的Device日志级别同样被修改。
物理ID的分组情况请以设备实际情况为准。
- 判断逻辑ID。
查询到的物理ID会按照数字大小从小到大自上而下排列,那么对应的逻辑ID则从0开始按顺序为0~n。假设查询到的物理ID为“0,1,4,5”,那么对应逻辑ID则为“0,1,2,3”。根据上一步的分组情况可判断物理ID“0,1”为一组,“4,5”为一组,那么可以推断出逻辑ID“0,1”为一组,“2,3”为一组。
- 设置日志级别。
根据前面判断的逻辑ID“0,1”为一组,“2,3”为一组。假设设置所有Device的日志级别为error,则需要配置两次:
Driver安装目录/driver/tools/msnpureport -g error -d 0
Driver安装目录/driver/tools/msnpureport -g error -d 2