【Linux疑難雜症】kernel … BUG: soft lookup

閱讀時間約 2 分鐘
raw-image

圖片來源...

前景提要

故事是這樣的,小明某一天在Linux系統上進行AI模型訓練時, 原本安心的去睡覺了, 沒想到一早起床想要看成功結果時, 竟然有一條可疑的LOG…。

kernel:[1270601.804083] watchdog: BUG: soft lockup - CPU#8 stuck for 27s! [kcompactd2:411]
raw-image

圖片來源...

這究竟是什麼狀況呢? 雖然只是警告訊息, 但好奇心強烈的小明一直想要得到一個答案, 因此我們就來協助它排除這個問題吧!

CPU軟鎖定(soft lockup)是怎麼發生的?

這是Linux內核的一個保護機制,用於檢測並回報發生了長時間未回應的核心任務或進程。

軟鎖定通常發生在某個任務或進程進入了無限循環或阻塞狀態,導致無法响应其他任務或中斷。當內核檢測到這種情況時,會生成一個錯誤訊息,以警告系統存在問題。

CPU負載時間過長、電壓不穩定、I/O問題…等, 需要逐一排查。

應該怎麼處理呢?

雖然我們可以將watchdog的時間間隔拉大, 就能夠暫時解決問題。

# 預設為10, 這邊我們拉到30
echo 30 > /proc/sys/kernel/watchdog_thresh

但這只是蒙蔽自己不看到問題而已, 最終還是得逐一排查才行, 有可能我們的系統已經在告訴我們有狀況需要注意了, 就如同身體發出警告一樣, 若我們只是屏蔽它, 那麼問題將會積少成多, 最終導致較難以處理的大問題。

以下是幾種可能原因:

  1. 不當的內核模組:某些內核模組可能不穩定或有錯誤,導致系統出現軟鎖定。
  2. 資源競爭:當多個任務或進程競爭訪問共享資源時,可能導致死鎖或軟鎖定。
  3. 低級硬體問題:硬體故障或兼容性問題可能導致軟鎖定。
  4. 運行時間過長的任務:某些任務在執行時耗時過長,可能觸發軟鎖定保護機制。

我們可以向這些方向進行排查。

結語

Linux系統雖然相對門檻較高, 但使用者也都非常樂意分享遇到的狀況以及處理方法,所以基本上都不用害怕這個系統, 而且處理效能相對較佳, 尤其我們開發雲服務的應用程式時就非常需要Linux的技能, 不妨好好的學習一番, 跟上時代的趨勢。

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

歡迎加入一起練習寫作,賺取知識

108會員
248內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
常常我們收到PDF檔案時, 因為資安較為嚴謹的需求下, 通常牽涉到個人資料的部份都會進行加密保護, 但假如說這個檔案基本上沒有什麼資訊安全的疑慮之下, 多一道鎖好像有點多此一舉, 因此我們可以將這類檔案進行解鎖, 當然方法有很多種, 以Adobe…等工具可以進行這樣的操作, 但都需要額外安裝在我
圖片來源 相信視覺化報表對於資料科學來說是非常重要的一環, 透過圖表來呈現資料的樣態, 過程中分析模型訓練時, 觀察訓練的收斂趨勢是否如我們預期, 視覺化加速我們的判斷時間, 節省找問題的成本。 數據就如同鐵證一般, 當我們常常苦於為什麼訓練出來的A模型這麼差勁,但B模型卻非常好, 這中間發生了
在進入主題之前建議先行閱讀「【程式語言 - Go】來認識Google開發的程式語言…」,初步認識一下Go語言是什麼? 容不容易學習? 才能夠更快的體會此篇章的目的。 當我們在進行軟體開發時,常常會需要有背後的資料庫系統來儲存我們的資料,而資料庫系統也會隨著時代的演進,進行大幅度的更新,那在這樣
Golang(Go)是由Google開發的一種開源的、靜態型別的編程語言,目的在提供一個簡單、高效、安全以及易於擴展的程式語言,特別適用於並發和平行處理,Go語言設計上著重於開發者的生產力,並提供了現代化的語法和豐富的標準庫。 強調簡單易讀,讓我們回歸原始以最簡易的方式來撰寫程式,併發的特性讓日趨
前面我們介紹了幾個關於Whisper的基本概念,這裡附上 🚀傳送門 ,歡迎好好閱讀一番,但我們除了學會如何用語音辨識的工具之外,「準確率」對我們來說也是一個非常重要的一環,但我們究竟應該要如何評估所謂的準確率呢? 不知道沒關係,當您看完這個篇章就能夠學會如何計算文字的「字元錯誤率」、「字詞錯誤率」
我們已經介紹過關於Transformer模型的平台「【Hugging Face】Ep.1 平凡人也能玩的起的AI平台」,而操作的過程中相信也會有不少玩家會遇到這樣的狀況,因此將遇到的問題整理並分享解決方法,讓需要的朋友可以參考一下。 問題 Input type (torch.FloatTen
常常我們收到PDF檔案時, 因為資安較為嚴謹的需求下, 通常牽涉到個人資料的部份都會進行加密保護, 但假如說這個檔案基本上沒有什麼資訊安全的疑慮之下, 多一道鎖好像有點多此一舉, 因此我們可以將這類檔案進行解鎖, 當然方法有很多種, 以Adobe…等工具可以進行這樣的操作, 但都需要額外安裝在我
圖片來源 相信視覺化報表對於資料科學來說是非常重要的一環, 透過圖表來呈現資料的樣態, 過程中分析模型訓練時, 觀察訓練的收斂趨勢是否如我們預期, 視覺化加速我們的判斷時間, 節省找問題的成本。 數據就如同鐵證一般, 當我們常常苦於為什麼訓練出來的A模型這麼差勁,但B模型卻非常好, 這中間發生了
在進入主題之前建議先行閱讀「【程式語言 - Go】來認識Google開發的程式語言…」,初步認識一下Go語言是什麼? 容不容易學習? 才能夠更快的體會此篇章的目的。 當我們在進行軟體開發時,常常會需要有背後的資料庫系統來儲存我們的資料,而資料庫系統也會隨著時代的演進,進行大幅度的更新,那在這樣
Golang(Go)是由Google開發的一種開源的、靜態型別的編程語言,目的在提供一個簡單、高效、安全以及易於擴展的程式語言,特別適用於並發和平行處理,Go語言設計上著重於開發者的生產力,並提供了現代化的語法和豐富的標準庫。 強調簡單易讀,讓我們回歸原始以最簡易的方式來撰寫程式,併發的特性讓日趨
前面我們介紹了幾個關於Whisper的基本概念,這裡附上 🚀傳送門 ,歡迎好好閱讀一番,但我們除了學會如何用語音辨識的工具之外,「準確率」對我們來說也是一個非常重要的一環,但我們究竟應該要如何評估所謂的準確率呢? 不知道沒關係,當您看完這個篇章就能夠學會如何計算文字的「字元錯誤率」、「字詞錯誤率」
我們已經介紹過關於Transformer模型的平台「【Hugging Face】Ep.1 平凡人也能玩的起的AI平台」,而操作的過程中相信也會有不少玩家會遇到這樣的狀況,因此將遇到的問題整理並分享解決方法,讓需要的朋友可以參考一下。 問題 Input type (torch.FloatTen
你可能也想看
Thumbnail
八十-二十法則提到,在多數生活的現象中,約80%的效果是來自於20%的原因,除了經濟學、學習理論外,這個法則同樣也可以應用在生活中的幸福感上。 我們需要認知到擁有的越多不一定會越快樂,反而有可能會因為無法專注在少數事物上而產生空虛、迷茫的感覺。「極簡」精神最重要的一點在於放下對於「多」的執著,將有
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Linux FAQ : ps 顯示的 stat 簡介 參考 : https://unix.stackexchange.com/questions/18474/what-does-this-process-stat-indicates
df 卡住大多是掛載磁碟異常 ( mount ) 可以改使用 df -l ( 查看本地磁碟 ) 查看掛載磁碟 mount | column -t 參考 : https://www.gushiciku.cn/pl/pIst/zh-tw 取消掛載磁碟 umount 位置
參考 : 1. UNIX/Linux 檔案壓縮與備份工具 tar 指令使用教學與範例(一):tar 檔案 2. Linux 使用 split 指令將大檔案切割成小檔案,方便網路傳輸 3. [Linux] tar/gzip 檔案壓縮與解壓縮、split/cat檔案分割與合併的實務應用
垂直加總資料 參考 : https://blog.longwin.com.tw/2009/02/bash-sum-use-awk-2009/ 若數字太大,出現 E 的符號,可以用 printf 來印
Linux FAQ : 給予顯示文字色彩 參考 : https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
Linux FAQ : grep 搜尋檔案內容 grep -i 不區分大小寫 grep -v 排除條件顯示 grep -l 顯示符合的檔名 grep -n 顯示條件在第幾行 grep -q 顯示 0 , 1 ( 檢查 $? , 0 is successful ) grep -x 整行完全符合才顯示
Thumbnail
Linux FAQ : 查看 jar 檔方式 jar 檔其實類似 zip 壓縮檔 除了可以用 zip 軟體來打開 在 Linux 可以用一些指令輔助
Linux FAQ : ls , cp , rm Argument list too long 在使用 Linux 如大量檔案 ls 查看 cp 複製 rm 清理 可能會遇到了 Argument list too long 大約 10 萬筆以上檔案 就可能會看到此訊息
最近發現MySQL用timestamp自動設定的現在時間CURRENT_TIMESTAMP,會慢八個小時,紀錄一下怎麼解的: 解決MySQL用timestamp自動設定的現在時間,會慢八個小時的問題: mysql > set global time_zone='+8:00';   // UTC+8為
Thumbnail
八十-二十法則提到,在多數生活的現象中,約80%的效果是來自於20%的原因,除了經濟學、學習理論外,這個法則同樣也可以應用在生活中的幸福感上。 我們需要認知到擁有的越多不一定會越快樂,反而有可能會因為無法專注在少數事物上而產生空虛、迷茫的感覺。「極簡」精神最重要的一點在於放下對於「多」的執著,將有
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Linux FAQ : ps 顯示的 stat 簡介 參考 : https://unix.stackexchange.com/questions/18474/what-does-this-process-stat-indicates
df 卡住大多是掛載磁碟異常 ( mount ) 可以改使用 df -l ( 查看本地磁碟 ) 查看掛載磁碟 mount | column -t 參考 : https://www.gushiciku.cn/pl/pIst/zh-tw 取消掛載磁碟 umount 位置
參考 : 1. UNIX/Linux 檔案壓縮與備份工具 tar 指令使用教學與範例(一):tar 檔案 2. Linux 使用 split 指令將大檔案切割成小檔案,方便網路傳輸 3. [Linux] tar/gzip 檔案壓縮與解壓縮、split/cat檔案分割與合併的實務應用
垂直加總資料 參考 : https://blog.longwin.com.tw/2009/02/bash-sum-use-awk-2009/ 若數字太大,出現 E 的符號,可以用 printf 來印
Linux FAQ : 給予顯示文字色彩 參考 : https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
Linux FAQ : grep 搜尋檔案內容 grep -i 不區分大小寫 grep -v 排除條件顯示 grep -l 顯示符合的檔名 grep -n 顯示條件在第幾行 grep -q 顯示 0 , 1 ( 檢查 $? , 0 is successful ) grep -x 整行完全符合才顯示
Thumbnail
Linux FAQ : 查看 jar 檔方式 jar 檔其實類似 zip 壓縮檔 除了可以用 zip 軟體來打開 在 Linux 可以用一些指令輔助
Linux FAQ : ls , cp , rm Argument list too long 在使用 Linux 如大量檔案 ls 查看 cp 複製 rm 清理 可能會遇到了 Argument list too long 大約 10 萬筆以上檔案 就可能會看到此訊息
最近發現MySQL用timestamp自動設定的現在時間CURRENT_TIMESTAMP,會慢八個小時,紀錄一下怎麼解的: 解決MySQL用timestamp自動設定的現在時間,會慢八個小時的問題: mysql > set global time_zone='+8:00';   // UTC+8為