写点什么

带你掌握如何查看并读懂昇腾平台的应用日志

  • 2023-03-16
    广东
  • 本文字数:2217 字

    阅读完需:约 7 分钟

带你掌握如何查看并读懂昇腾平台的应用日志

本文分享自华为云社区《如何查看并读懂昇腾平台的应用日志》,作者:昇腾 CANN。


当您完成训练/推理工程开发后,将工程放到昇腾平台运行,以调试工程是否正常,此时,可能会出现各种各样、五花八门的异常状况。当问题发生时,我们的第一反应是不是查看日志,看看哪里报错了。昇腾平台有哪些日志呢?日志文件又在哪呢?本期带您了解如何使用昇腾平台的日志功能。

​01 了解日志分类


根据工程运行过程中日志产生的场景不同,日志通常被分为以下 4 类:


  • ​调试日志(debug):记录调试级别的相关信息,一般用于跟踪运行路径,如记录函数的进入和退出等,大部分为代码级的信息输出,调试日志用于开发人员定位复杂问题。

  • ​操作日志(operation):记录设备操作维护人员下发或通过设置相关的自动化任务下发的操作和操作结果。

  • ​安全日志(security):记录系统用户登录、注销和鉴权,增加、删除用户,用户的锁定和解锁,角色权限变更,系统相关安全配置(如安全日志内容配置)变更等活动。

  • ​运行日志(run):记录系统的运行状况或执行流程中的一些关键信息,包括异常的状态、动作,关键的事件等。

​02 如何获取日志文件


我们现在知道了昇腾 AI 处理器有 4 类日志,那我们需要到哪里查看这些日志呢?本节来揭秘。昇腾 AI 处理器具有 EP 和 RC 两种形态,针对不同的硬件形态,日志文件存放位置不同,需根据实际硬件形态获取。

​EP 形态日志获取


  • 应用类日志


用户应用进程在 Host 侧和 Device 侧产生的日志。例如,一个推理/训练任务下发后,通常与本次推理/训练直接相关的日志都存放在应用类日志中。这类日志默认存放在“$HOME/ascend/log”路径下,格式如下:


​├── debug│ ├── device-0│ │   └── device-pid_*.log  //Device侧产生的日志│ └── plog│     └── plog-pid_*.log    //Host侧产生的日志├── operation│ ├── device-0│ │   └── device-pid_*.log│ └── plog│     └── plog-pid_*.log├── run│ ├── device-0│ │   └── device-pid_*.log│ └── plog│     └── plog-pid_*.log└── security   ├── device-0   │   └── device-pid_*.log   └── plog       └── plog-pid_*.log
复制代码


  • 系统类日志


非用户应用进程在 Device 侧产生的日志,即 Device 侧常驻进程运行产生的日志通常都在存放在系统类日志中。这类日志生成时默认存放在 Device 侧/var/log/npu/slog 路径下,需要在 Host 侧通过 msnpureport 工具将其导出到 Host 侧再进行查看。命令举例:


​$Driver_HOME/driver/tools/msnpureport -a
复制代码


通过 msnpureport 工具导出到 Host 侧后,系统类日志按 Device 侧文件夹存放,格式如下:


├── debug│ ├── device-os│     └── device-os_*.log├── operation│ ├── device-os│     └── device-os_*.log├── run│ ├── device-os│     └── device-os_*.log├──security│ ├── device-os│     └── device-os_*.log└── slog      └── slogdlog
复制代码

RC 形态日志获取


RC 形态日志获取比较简单,不管是应用类日志还是系统类日志,均存放在/var/log/npu/slog 路径下。存放格式与 EP 场景类似:


​├── debug│ ├── device-app-pid│ │   └── device-app-pid_*.log│ └── device-os│     └── device-os_*.log├── operation│ ├── device-app-pid│ │   └── device-app-pid_*.log│ └── device-os│     └── device-os_*.log├── run│ ├── device-app-pid│ │   └── device-app-pid_*.log│ └── device-os│     └── device-os_*.log├── security│ ├── device-app-pid│ │   └── device-app-pid_*.log│ └── device-os│     └── device-os_*.log└── device-id       └──device-id_*.log
复制代码

03 如何读懂日志内容


日志内容严格按照日志规范打印,每条日志格式一致、字段含义明确,便于阅读。日志格式、字段含义如下:



日志内容可以通过 cat、grep 等命令查看。

​04 如何设置日志级别

日志级别定义


不同日志级别打印的日志内容详细程度不同,因此,问题定位时可以使用最详细日志(DEBUG)打印,而验证性能时使用最简日志(ERROR)打印即可。日志功能提供了 5 种级别供大家选择使用:



说明:各级别日志详细程度:DEBUG > INFO > WARNING > ERROR

设置日志级别


通过上面日志级别介绍,我们了解到可以根据自己需求设置不同的日志级别、打印不同详细程度的日志。那应该如何设置呢?


​- 应用类日志级别设置,通过在 Host 侧通过环境变量 ASCEND_GLOBAL_LOG_LEVEL 进行设置,例如设置 INFO 级别:


export ASCEND_GLOBAL_LOG_LEVEL=1
复制代码


- 系统类日志级别设置,针对 EP 和 RC 形态提供了不同的方法。


​RC 形态通过修改/var/log/npu/conf/slog/slog.conf 配置文件、重启日志进程生效。


#note, 0:debug, 1:info, 2:warning, 3:error, 4:null(no output log), default(1)global_level=1# Event Type Log Flag, 0:disable, 1:enable, default(1)enableEvent=1# note, 0:debug, 1:info, 2:warning, 3:error, 4:null(no output log), 5:invalid(follow global_level)SLOG=5IDEDD=5  # ascend debug device agentDVPP=5CCE=5
复制代码


EP 形态通过 msnpureport 工具设置系统类日志级别。例如:


$Driver_HOME/driver/tools/msnpureport –g info
复制代码

05 更多介绍


关于昇腾平台日志更多介绍,请登录昇腾文档中心查阅。


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
带你掌握如何查看并读懂昇腾平台的应用日志_人工智能_华为云开发者联盟_InfoQ写作社区