【2023 · CANN訓(xùn)練營第一季】關(guān)于調(diào)試日志的學(xué)習(xí)
【2023 · CANN訓(xùn)練營第一季】關(guān)于調(diào)試日志的學(xué)習(xí)
文檔參考:CANN文檔社區(qū)版: 6.0.RC1.alpha001
一、概述
日志主要用于記錄系統(tǒng)的運(yùn)行過程及異常信息,幫助快速定位系統(tǒng)運(yùn)行過程中出現(xiàn)的問題以及開發(fā)過程中的程序調(diào)試問題。
日志分為如下兩大類:
系統(tǒng)類日志?:系統(tǒng)運(yùn)行產(chǎn)生的日志。主要包括:
Control CPU上的系統(tǒng)類日志,包括用戶態(tài)日志和內(nèi)核態(tài)日志。
非Control CPU(例如TSDUMP/LP)上的系統(tǒng)類日志。
應(yīng)用類日志?:運(yùn)行應(yīng)用程序產(chǎn)生的日志。主要包括:
compiler中各組件(如GE、FE、AICPU、TBE、HCCL等)、runtime中各組件(如AscendCL、GE、Runtime等)打印的日志。
Device側(cè)AICPU 、HCCP打印的日志。
二、日志格式
字段說明:

三、日志操作
1.環(huán)境變量操作
設(shè)置打屏:
export ASCEND_SLOG_PRINT_TO_STDOUT=1
應(yīng)用類日志獲取:
日志默認(rèn)路徑:$HOME/ascend/log/plog”
設(shè)置環(huán)境變量:
export ASCEND_PROCESS_LOG_PATH=/$HOME/xxx

1.上述日志中id和pid分別代表Device ID和進(jìn)程ID,請以實(shí)際為準(zhǔn);日志文件中的"*"表示該日志文件創(chuàng)建時的時間戳。
2.以上目錄是容器或物理機(jī)內(nèi)所有應(yīng)用程序共同使用的,會不斷增加新的應(yīng)用進(jìn)程,日志會不斷增多,因此需要用戶定期清理該目錄(可以使用系統(tǒng)自帶的logrotate實(shí)現(xiàn)日志切分),否則可能導(dǎo)致磁盤空間不足,影響業(yè)務(wù)正常運(yùn)行。
3.如果存儲在只有emmc/flash等有寫次數(shù)限制的介質(zhì)下,建議將日志落盤路徑設(shè)置到內(nèi)存文件系統(tǒng)路徑下,啟動業(yè)務(wù)進(jìn)程時通過環(huán)境變量(ASCEND_PROCESS_LOG_PATH)設(shè)置日志落盤路徑,可以另起一個常駐進(jìn)程定時定量將內(nèi)存文件系統(tǒng)下的日志轉(zhuǎn)儲在emmc/flash。
Device側(cè)應(yīng)用類日志回傳延時設(shè)置:
export ASCEND_LOG_DEVICE_FLUSH_TIMEOUT=5000
應(yīng)用類日志目錄存儲單日志進(jìn)程下日志文件數(shù)量設(shè)置:
export ASCEND_HOST_LOG_FILE_NUM=20
其他環(huán)境變量說明:

2.重啟日志進(jìn)程(僅考慮EP場景)
日志進(jìn)程停止:
獲取日志進(jìn)程(slogd、sklogd或log-daemon)ID:可以通過ps -elf | grep log命令查詢。
命令:kill -15 進(jìn)程ID
重啟日志進(jìn)程:
如下命令需要在HwHiAiUser用戶下運(yùn)行:
設(shè)置完后可以通過ps -elf | grep log進(jìn)行查詢是否這三個進(jìn)程有啟動
重啟異常問題:
slogd.pid屬主異常:進(jìn)入/usr/slog目錄,執(zhí)行l(wèi)s -l命令查看slogd.pid屬主是否為root,如果屬主是root,建議刪除該文件后重新手動啟動日志進(jìn)程。
/var目錄所在磁盤使用率達(dá)100%:進(jìn)入根目錄,運(yùn)行命令?df -h?,如果/var目錄所在磁盤使用率達(dá)到100%導(dǎo)致slogd啟動失敗,則進(jìn)入"/var/log/npu/slog"目錄,手動刪除一些較大的、時間較早的日志文件。刪除完后重新手動啟動日志進(jìn)程。
日志其實(shí)是我們在調(diào)試過程中重要的問題分析工具,在我們遇到執(zhí)行出錯時,應(yīng)當(dāng)先進(jìn)行運(yùn)行日志的分析,針對進(jìn)行修改。
那我的從模型轉(zhuǎn)換->資源申請->數(shù)據(jù)預(yù)處理->模型加載與推理->后處理->日志分析就完成啦。
我這個小菜鳥的第一個項目結(jié)束了!再接再厲!
ps:該文僅是為了記錄CANN訓(xùn)練營的學(xué)習(xí)過程所用,不參與任何商業(yè)用途,有任何代碼問題可以和我一起討論修改