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

news2025/7/21 23:07:24

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

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种级别供大家选择使用:

日志级别

日志信息

ERROR

记录不可预知的信息,如错误、异常、失败等。

WARNING

记录系统警告信息,这些告警是可以预知的、不影响系统运行。

INFO

记录系统正常运行信息。

DEBUG

记录系统调试信息,日志信息尽可能地详尽,便于出现问题或者异常时,对其进行分析。

NULL

不输出日志。

说明:各级别日志详细程度: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=5
IDEDD=5  # ascend debug device agent
DVPP=5
CCE=5

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

$Driver_HOME/driver/tools/msnpureport –g info

05 更多介绍

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/395104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面向对象设计模式:结构型模式之装饰器模式

一、引入 咖啡馆订购系统 Initial 初始 4 种咖啡 House blend (混合咖啡)Dark Roast (深度烘培)Decaf (低咖啡因咖啡)Espresso (意式浓缩咖啡) 需求变更:客户可以加料(咖啡、牛奶、糖等) steamed milksoymochaWhip 使用继承&#xff1…

Vue2的基本内容(二)

目录 一、props配置 二、全局事件总线 1.作用 2.原理 3.使用 三、插槽 1.默认插槽 2.具名插槽 3.作用域插槽 四、Vuex 1.vuex是什么 2.vuex工作流程 3.vuex的API (1)state (2)state辅助函数mapState (…

Linux 练习六 (IPC 管道)

文章目录1 标准管道流2 无名管道(PIPE)3 命名管道(FIFO)3.1 创建删除管道文件3.2 打开和关闭FIFO文件3.3 管道案例:基于管道的客服端服务器程序使用环境:Ubuntu18.04 使用工具:VMWare workstati…

【C++】STL——string类的模拟实现

文章目录👉string类👈📕 概念📕 成员变量📕 构造函数、析构函数📕 size() 、getstr() 函数📕 拷贝构造📕 赋值重载📕 迭代器📕 运算符重载📕 尾插…

如何管控第三方软件,保护企业数据安全?

日前,密码管理供应商LastPass公布了关于其数据泄露事件的调查新进展。据其透露,这是一起“二次协同攻击”事件。LastPass在2022年8月、12月先后披露的两起违规事件,这两起事件的攻击链有关联。在此次攻击事件中,LastPass发现恶意黑…

王道计算机组成原理课代表 - 考研计算机 第五章 中央处理器 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 计算机组成 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “中央处理器” 章节知识点总结的十分全面,涵括了《计算机组成原理》课…

C++基础——C++相比C语言的新特性梳理总结(C++新特性、输入输出方式、命名空间namespace)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》 长期持续带来更多案例与技术文章分享…

论文翻译 | Momentum Contrast for Unsupervised Visual Representation Learning(前三章)

前言: 上一次读恺明大神的文章还是两年前,被ResNet的设计折服得不行,两年过去了,我已经被卷死在沙滩上 Momentum Contrast for Unsupervised Visual Representation Learning 摘要 我们提出了针对无监督表征学习的方法MOCO,利用…

上门按摩预约APP源码-东郊到家源码(开发,PHP,平台搭建)

一、什么是上门按摩预约APP源码? 上门按摩预约APP源码是一款家政服务类型的APP,可以帮忙用户在家就能享受按摩的服务。APP源码分两端,一端是用户端,另外一端是技师端。采用的技术,前端是安卓IOS,后端是PHP&…

java_Day004

1.二维数组 二维数组的创建与初始化(java是支持规则数组和不规则数组的) 例:int[][] array {{1,2},{2,3}{3,4,5}}; 结构如下: 二维数组的遍历: 例子: Testpublic void test21(){int[][] array new int[…

C++学习记录——십이 vector

文章目录1、vector介绍和使用2、vector模拟实现insert和erase和迭代器失效补齐其他函数深浅拷贝难点思考1、vector介绍和使用 vector可以管理任意类型的数组&#xff0c;是一个表示可变大小数组的序列容器。 通过vector文档来看它的使用。 #include <iostream> #inclu…

集群、分布式的理解

一、单机模式小型系统相对简单&#xff0c;所有的业务全部写在一个项目中&#xff0c;部署服务到一台服务器上&#xff0c;所有的请求业务都由这台服务器处理&#xff0c;这就是单机模式。显然&#xff0c;当业务增长到一定程度的时候&#xff0c;服务器的硬件会无法满足业务需…

强化学习 | 课堂笔记 | 第三课 MP的便利性,随机逼近方法

一、回顾 一、值函数、贝尔曼方程、贝尔曼最优方程 二、最优值函数 三、ADP 3.1 VI 3.2 PI 四、ADP可以使用的条件 五、Q函数 六、解决问题的方案 &#xff08;指的是解决“四 ADP可以使用的条件”中的三个问题&#xff09; 二、期望的计算 一、Markov过程的便利性 1…

新搭建Gitlab代码仓代码如何导入

这里写目录标题一级目录1.本地代码如何导入新Gitlab2.怎么将旧Gitlab代码导入新Gitlab一级目录 1.本地代码如何导入新Gitlab 修改本地代码 .git 目录下面的config 文件&#xff0c;主要是url参数&#xff0c;将url指向新的Gitlab仓库地址 [core]repositoryformatversion 0f…

【1096. 花括号展开 II】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 如果你熟悉 Shell 编程&#xff0c;那么一定了解过花括号展开&#xff0c;它可以用来生成任意字符串。 花括号展开的表达式可以看作一个由 花括号、逗号 和 小写英文字母 组成的字符串&#xff0c;定…

E900V21C(S905L-armbian)安装armbian-Ubuntu(WiFi)

基本上是s905L芯片的刷机都是如此&#xff0c;包括Q7等 在网上寻找好多的教程关于e900v21c的刷机包和教程都少的可怜&#xff0c;唯一的就是这个&#xff1a;山东联通版创维E900V21C盒子刷入Armbiam并安装宝塔和Docker&#xff0c;但他是不能用WiFi和蓝牙的然后就是寻找s90l的…

C++基础了解-01-基础语法

基础语法 一、基础语法 C 程序可以定义为对象的集合&#xff0c;这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象&#xff0c;方法、即时变量。 对象 - 对象具有状态和行为。例如&#xff1a;一只狗的状态 - 颜色、名称、品种&#xff0c;行为 -…

【LeetCode每日一题】——334.递增的三元子序列

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【题目进阶】九【时间频度】十【代码实现】十一【提交结果】一【题目类别】 贪心算法 二【题目难度】 中等 三【题目编号】 334.递增的三元子序列 四【题…

Vue3视频播放组件(Video)

Vue2视频播放组件 可自定义设置以下属性&#xff1a; 视频文件url&#xff08;videoUrl&#xff09;&#xff0c;必传&#xff0c;支持网络地址https和相对地址 视频封面url&#xff08;videoCover&#xff09;&#xff0c;默认为null&#xff0c;支持网络地址https和相对地…

【nacos2.2.1本地启动】

nacos2.2.1本地启动填坑之行 下载nacos代码 nacos文档地址&#xff1a;https://nacos.io/zh-cn/docs/quick-start-spring.html github地址下载代码&#xff1a;https://github.com/alibaba/nacos.git appllo文章&#xff1a;https://blog.51cto.com/muxiaonong/3933418 下…