故事是這樣的,小明某一天在Linux系統上進行AI模型訓練時, 原本安心的去睡覺了, 沒想到一早起床想要看成功結果時, 竟然有一條可疑的LOG…。
kernel:[1270601.804083] watchdog: BUG: soft lockup - CPU#8 stuck for 27s! [kcompactd2:411]
這究竟是什麼狀況呢? 雖然只是警告訊息, 但好奇心強烈的小明一直想要得到一個答案, 因此我們就來協助它排除這個問題吧!
這是Linux內核的一個保護機制,用於檢測並回報發生了長時間未回應的核心任務或進程。
軟鎖定通常發生在某個任務或進程進入了無限循環或阻塞狀態,導致無法响应其他任務或中斷。當內核檢測到這種情況時,會生成一個錯誤訊息,以警告系統存在問題。
CPU負載時間過長、電壓不穩定、I/O問題…等, 需要逐一排查。
雖然我們可以將watchdog的時間間隔拉大, 就能夠暫時解決問題。
# 預設為10, 這邊我們拉到30
echo 30 > /proc/sys/kernel/watchdog_thresh
但這只是蒙蔽自己不看到問題而已, 最終還是得逐一排查才行, 有可能我們的系統已經在告訴我們有狀況需要注意了, 就如同身體發出警告一樣, 若我們只是屏蔽它, 那麼問題將會積少成多, 最終導致較難以處理的大問題。
以下是幾種可能原因:
我們可以向這些方向進行排查。
Linux系統雖然相對門檻較高, 但使用者也都非常樂意分享遇到的狀況以及處理方法,所以基本上都不用害怕這個系統, 而且處理效能相對較佳, 尤其我們開發雲服務的應用程式時就非常需要Linux的技能, 不妨好好的學習一番, 跟上時代的趨勢。
喜歡撰寫文章的你,不妨來了解一下:
Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?
歡迎加入一起練習寫作,賺取知識