昇腾社区首页
中文
注册

日志文件获取

本节介绍日志的存储路径、文件名称及记录的主要信息。

日志的默认输出方式为将日志保存在log文件中,也可以通过设置环境变量ASCEND_SLOG_PRINT_TO_STDOUT,将日志打屏显示,只在当前shell下生效。设置命令如下:
export ASCEND_SLOG_PRINT_TO_STDOUT=1
ASCEND_SLOG_PRINT_TO_STDOUT取值范围如下:
  • 0:表示采用日志的默认输出方式。
  • 1:表示日志打屏显示。
  • 其他值为非法值。

通过执行echo $ASCEND_SLOG_PRINT_TO_STDOUT命令可以查看设置的值,如果查询为非法值或者空,表示采用日志默认输出方式。

上述日志中idpid分别代表Device ID和进程ID,请以实际为准;日志文件中的“*”表示该日志文件创建时的时间戳。

推理场景(Ascend EP)和训练场景

应用类日志

假设有一个ACL应用程序,进程ID为pid(请以实际为准),应用程序运行完成后,可在日志目录下查看日志如图1所示。

日志目录默认为“$HOME/ascend/log/plog”,也可以使用环境变量ASCEND_PROCESS_LOG_PATH指定路径(如:export ASCEND_PROCESS_LOG_PATH =/home/xxx)。可指定日志落盘路径为任意有读写权限的目录。日志存储时如果不存在该目录,会自动创建该目录;如果存在则直接存储。

应用类日志支持在容器内或物理机内查看。为保证日志工具在容器内正常运行,需要将日志工具动态库文件libalog.so及其依赖的libc_sec.so所在路径映射到容器内。以安装路径“/usr/local/Ascend/”为例,libalog.so及其依赖的libc_sec.so所在路径分别为“/usr/local/Ascend/nnae/latest/compiler/lib64/libalog.so”和“/usr/local/Ascend/driver/lib64/common/libc_sec.so”

图1 应用类日志
表1 应用类日志介绍

存储路径

说明

$HOME/ascend/log/plog/plog-pid_*.log

在Host侧运行应用程序产生的日志,主要包括compiler、ATC中各组件(如ACL、GE)打印的日志和Driver用户态日志。

$HOME/ascend/log/device-id/device-pid_*.log

在Device侧运行应用程序产生的日志,主要包括Device侧AICPU、HCCP的日志,并回传到Host侧。
须知:
  • 如果Device侧应用类日志回传到Host侧失败,会在Device侧直接落盘(路径为/var/log/npu/slog/device-app-pid/device-app-pid_*.log)。如果Device侧应用类日志回传到Host侧成功,则不会在Device侧落盘。可以使用msnpureport工具使用导出slog日志。
  • 在容器内,该日志的device-id为逻辑ID。

注:

  • 上述日志中idpid分别代表Device ID和进程ID,请以实际为准;日志文件中的“*”表示该日志文件创建时的时间戳。
  • 以上目录是容器或物理机内所有应用程序共同使用的,会不断增加新的应用进程,日志会不断增多,因此需要用户定期清理该目录(可以使用系统自带的logrotate实现日志切分),否则可能导致磁盘空间满,影响业务正常运行。
  • 如果存储在只有emmc/flash等有写次数限制的介质下,建议将日志落盘路径设置到内存文件系统路径下,启动业务进程时通过环境变量(ASCEND_PROCESS_LOG_PATH)设置日志落盘路径,可以另起一个常驻进程定时定量将内存文件系统下的日志转储在emmc/flash。

业务进程退出前,默认延时2000ms,等待Device侧应用类日志回传到Host侧,超时后,业务进程退出。延时时间可以通过环境变量ASCEND_LOG_DEVICE_FLUSH_TIMEOUT进行设置,取值范围为[0, 180000],整数形式,单位是ms。设置方法如下:

export ASCEND_LOG_DEVICE_FLUSH_TIMEOUT=5000
  • 设置的值仅在当前shell下生效。
  • 如果环境变量设置了非法值(或没有设置值),默认延时2000ms。
  • 通过执行echo $ASCEND_LOG_DEVICE_FLUSH_TIMEOUT命令可以查看设置的值,如果查询为非法值或者空,表示使用默认值。
  • 如果业务进程不需要等待所有Device侧应用类日志回传到Host侧,可以将环境变量设置为0。
  • 如果业务进程退出后,仍然有Device侧应用类日志未回传到Host侧,则直接在Device侧落盘(路径为/var/log/npu/slog/device-app-pid/device-app-pid_*.log)。针对这种情况,建议将延时时间调大,具体调节的大小可以根据device-app-pid的日志内容进行判断。

plog和device-id日志目录下能够存储的单个进程的日志文件数量默认均为10个,该数量也可以通过环境变量ASCEND_HOST_LOG_FILE_NUM进行设置,取值范围为[1, 1000],整数形式,单位是个。设置方法如下:

export ASCEND_HOST_LOG_FILE_NUM=20
  • 设置的值仅在当前shell下生效。
  • 如果环境变量设置了非法值(或没有设置值),采用默认值。
  • 通过执行echo $ASCEND_HOST_LOG_FILE_NUM命令可以查看设置的值,如果查询为非法值或者空,表示采用默认值。

如果plog和device-id日志目录下存储的单个进程的日志文件数量超过设置的值,将会自动删除最早的日志。另外每个plog-pid_*.log或device-pid_*.log日志文件的大小最大固定为20MB。如果超过该值,会生成新的日志文件。

Device侧系统类日志

Device侧系统类日志通过msnpureport工具传输到Host侧进行查看。导出操作以及导出日志的存储路径具体请参见msnpureport工具使用章节。

容器内不支持查看Device侧系统类日志,也不支持通过msnpureport工具导出Device侧系统类日志。

表2 Device侧系统类日志介绍

存储路径

说明

/var/log/npu/slog/device-os/device-os_*.log

Device侧Control CPU上的系统类日志,包括用户态日志和内核态日志。主要采集以下模块的日志:
  • SLOG
  • IDEDD
  • HDC
  • Driver
  • ……

/var/log/npu/slog/device-id/device-id_*.log

Device侧非Control CPU上的系统类日志,主要采集以下模块的日志:
  • TS
  • TSDUMP
  • ……

/var/log/npu/slog/device-app-pid/device-app-pid_*.log

Device侧应用类日志。仅当Device侧应用类日志回传到Host侧失败时,才会在Device侧存储该日志。

说明:
  • 应用类日志整体进行老化,默认支持存储24个device-app-pid目录,系统每隔15秒对该目录进行一次扫描,如果日志超过配置的存储限制,将会自动删除最早的device-app-pid目录。存储device-app-pid目录的数量配置以及每个device-app-pid目录存储的日志文件的数量和单个日志文件的大小具体请参见日志配置文件
  • 最多支持24个应用进程并发处理,如果超过该数值,可能会导致日志丢失。

/var/log/npu/slog/slogd/slogdlog

维测日志。记录日志工具自身的运行信息,用于日志工具自身问题定位。日志具备老化策略,当slogdlog文件达到规定大小(1MB)后,名称变更为slogdlog.old进行备份(如果已有备份文件,则删除旧的备份文件)。

/var/log/messages*

调用syslog接口记录Device侧其他组件产生的日志。

注:上述日志中idpid分别代表Device ID和进程ID,请以实际为准;日志文件中的“*”表示该日志文件创建时的时间戳。

推理场景(Ascend RC

表3 日志文件介绍

存储路径

说明

/var/log/npu/slog/device-os/device-os_*.log

Control CPU上的系统类日志,包括用户态日志和内核态日志。主要采集以下模块的日志:
  • SLOG
  • IDEDD
  • HDC
  • Driver
  • ……

/var/log/npu/slog/device-id/device-id_*.log

非Control CPU上的系统类日志,主要采集以下模块的日志:
  • TS
  • TSDUMP
  • LP

/var/log/npu/slog/device-app-pid/device-app-pid_*.log

应用类日志,即运行应用程序产生的日志。

说明:
  • 应用类日志整体进行老化,默认支持存储48个device-app-pid目录,系统每隔15秒对该目录进行一次扫描,如果日志超过配置的存储限制,将会自动删除最早的device-app-pid目录。存储device-app-pid目录的数量配置以及每个device-app-pid目录存储的日志文件的数量和单个日志文件的大小具体请参见日志配置文件
  • 最多支持24个应用进程并发处理,如果超过该数值,可能会导致日志丢失。

/var/log/npu/slog/slogd/slogdlog

维测日志。记录日志工具自身的运行信息,用于日志工具自身问题定位。

日志具备老化策略,当slogdlog文件达到规定大小(1MB)后,名称变更为slogdlog.old进行备份(如果已有备份文件,则删除旧的备份文件)。

注:上述日志中idpid分别代表Device ID和进程ID,请以实际为准;日志文件中的“*”表示该日志文件创建时的时间戳。