帶你掌握如何查看並讀懂昇騰平台的應用日誌
摘要:本文介紹了昇騰平台日誌分類、日誌級別設置、日誌內容格式,以及如何獲取日誌文件的方法。
本文分享自華為雲社區《如何查看並讀懂昇騰平台的應用日誌》,作者:昇騰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=5 # Slog
IDEDD=5 # ascend debug device agent
DVPP=5 # DVPP
CCE=5 # CCE
EP形態通過msnpureport工具設置系統類日誌級別。例如:
$Driver_HOME/driver/tools/msnpureport –g info
05 更多介紹
關於昇騰平台日誌更多介紹,請登錄昇騰文檔中心查閲。
- 使用卷積神經網絡實現圖片去摩爾紋
- 內核不中斷前提下,Gaussdb(DWS)內存報錯排查方法
- 簡述幾種常用的排序算法
- 自動調優工具AOE,讓你的模型在昇騰平台上高效運行
- GaussDB(DWS)運維:導致SQL執行不下推的改寫方案
- 詳解目標檢測模型的評價指標及代碼實現
- CosineWarmup理論與代碼實戰
- 淺談DWS函數出參方式
- 代碼實戰帶你瞭解深度學習中的混合精度訓練
- python進階:帶你學習實時目標跟蹤
- Ascend CL兩種數據預處理的方式:AIPP和DVPP
- 詳解ResNet 網絡,如何讓網絡變得更“深”了
- 帶你掌握如何查看並讀懂昇騰平台的應用日誌
- InstructPix2Pix: 動動嘴皮子,超越PS
- 何為神經網絡卷積層?
- 在昇騰平台上對TensorFlow網絡進行性能調優
- 介紹3種ssh遠程連接的方式
- 分佈式數據庫架構路線大揭祕
- DBA必備的Mysql知識點:數據類型和運算符
- 5個高併發導致數倉資源類報錯分析