连续导出Device侧的日志和文件
当执行模型推理时,如果Device侧出现异常,会导致无法连接Device侧,因此将不能通过msnpureport工具导出Device侧的日志和文件(msnpureport工具导出的Device侧日志和文件具体请参见msnpureport工具使用章节)。此时可以在执行推理之前,在Host侧运行msnpureport_auto_export.sh脚本连续导出Device侧的日志和文件,确保能够获取到Device异常前的所有日志文件,便于定位问题。

- 该功能仅适用于Ascend EP场景。
- msnpureport_auto_export.sh脚本不支持容器场景,部署容器时,禁止将msnpureport_auto_export.sh脚本映射到容器内。
- 不支持多个用户同时运行msnpureport_auto_export.sh脚本。
- 在异常场景下,可能会出现连续导出Device侧日志和文件失败的情况。
- 如果用户想要终止导出Device侧日志和文件或者模型推理完成,需要使用“Ctrl+c”或kill -15 pid命令结束进程。其中pid代表连续导出日志和文件的脚本进程ID,可以通过ps -elf | grep msnpureport_auto_export.sh命令进行查询。
操作步骤
- 登录Host侧服务器。
- 获取msnpureport_auto_export.sh脚本。
msnpureport_auto_export.sh脚本在驱动Driver的安装目录下,路径为“Driver安装目录/driver/tools/msnpureport_auto_export.sh”。
- 在某个有执行权限的目录(如“/home/work”)下执行如下命令,运行脚本。
Driver安装目录/driver/tools/msnpureport_auto_export.sh <timeInterval> <logAbsolutePathCapacity> <logAbsolutePath>
命令示例:/usr/local/Ascend/driver/tools/msnpureport_auto_export.sh 2 10 /home/log/
在加锁的目录下(使用lsattr命令查看目录属性,有“i”选项的为加锁目录),用户没有权限运行msnpureport_auto_export.sh脚本。如果用户想在该目录下运行该脚本,可以通过chattr -i <加锁的目录>命令,将目录的“i”选项撤销。脚本运行完后建议通过chattr +i <加锁的目录>命令,将目录的“i”选项加上。为了安全起见,不建议在加锁目录中运行脚本。
其中各参数解释如表1所示:
表1 参数说明 参数
说明
<timeInterval >
导出Device侧日志和文件的间隔时间。取值为大于0的整数,单位是s,如:2s。
<logAbsolutePathCapacity>
导出Device侧日志和文件的存储目录容量。取值为大于等于2的整数,单位是G,如:10G。
<logAbsolutePath>
导出Device侧日志和文件的存储路径(任意的绝对路径)。如:“/home/log/”。
脚本运行成功后,Device侧日志和文件将存储在运行脚本时指定的存储路径下(如“/home/log/”),如果不存在该目录,会自动进行创建;如果存在则直接存储。该目录下会自动创建如下子目录:
表2 主要目录及文件说明 目录
说明
msnpureport_log_new
导出Device侧日志和文件的存储目录。该目录下包含如下子目录:- event_sched
- hisi_logs
- message
- module_info
- slog
- stackcore
其中hisi_logs目录下的history.log文件和message目录下的message.log文件是在Device侧的同名文件中进行老化的,所以每次导出之后需要将导出内容追加到同一目录下的history_new.log和message_new.log文件中并进行去重,来获取所有日志文件。
其他目录的日志文件在Device侧是以时间戳命名的,是通过删除较早时间戳的日志文件进行老化的,所以每次导出之后只需将导出内容拷贝覆盖就可以获取所有日志文件。
msnpureport_log_old
老化的日志和文件的存储目录。
如果msnpureport_log_new目录存储的日志容量超过运行脚本时指定的存储目录容量的一半(如10/2=5G),将自动清空msnpureport_log_old目录下的日志和文件,再将msnpureport_log_new目录下存储的日志和文件全部移动到msnpureport_log_old目录下。