帶你掌握如何查看並讀懂昇騰平台的應用日誌

語言: CN / TW / HK
摘要:本文介紹了昇騰平台日誌分類、日誌級別設置、日誌內容格式,以及如何獲取日誌文件的方法。

本文分享自華為雲社區《如何查看並讀懂昇騰平台的應用日誌》,作者:昇騰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 更多介紹

關於昇騰平台日誌更多介紹,請登錄昇騰文檔中心查閲。

 

點擊關注,第一時間瞭解華為雲新鮮技術~