【案例分享】SuSE12SP5宕機分析報告

一、故障描述
接到客戶通知,一臺SuSE12SP5內(nèi)核版本為4.12.14-122.54-default的機器宕機自動重啟,業(yè)務受到影響,OS重啟后正常進入系統(tǒng),業(yè)務恢復,需要分析宕機原因。
二、故障分析
收集信息
聯(lián)系客戶收集supportconfig日志,在supportconfig中看到,系統(tǒng)在宕機時刻在/var/crash目錄下面生成了2023-01-07-09:18目錄,由此可見系統(tǒng)在出現(xiàn)問題的時候生成了dump文件,需要從生成的dump文件去分析,并將客戶的2023-01-07-09:18目錄上傳到分析kdump的機器上。
?準備工具
1.?安裝crash

2. 準備kernel文件

3. 提取文件

4. 分析crash

根據(jù)上面輸出得到如下信息:??? 在執(zhí)行 "top" 命令時發(fā)生了雙重故障(double fault)導致系統(tǒng)崩潰。雙重故障通常表示處理器執(zhí)行兩次異常處理過程,其中第二次異常處理過程發(fā)生在第一次異常處理過程的上下文中,導致系統(tǒng)無法恢復正常運行。

根據(jù) backtrace(bt)信息,內(nèi)核崩潰的原因是在執(zhí)行do_page_fault函數(shù)時發(fā)生了異常,導致雙重故障。do_page_fault是一個用于處理頁面故障(page fault)異常的內(nèi)核函數(shù),它被用來處理在內(nèi)存訪問時發(fā)生的頁面錯誤。(比如缺頁異常)

通過dis查到這個函數(shù)在內(nèi)存中的地址為ffffffffb4076cf6,看到實際CPU操作的是push %rbx,將寄存器%rbx中的數(shù)據(jù)入棧,入棧地址為fffffe000013c000,但%rbx的地址全部為0,為空數(shù)據(jù),所以有可能是內(nèi)存硬件存在問題。
三、故障處理
后續(xù)通過檢查硬件發(fā)現(xiàn):內(nèi)存存在異常告警,更換內(nèi)存后現(xiàn)象消失,宕機重啟現(xiàn)象不再出現(xiàn)。
四、經(jīng)驗總結
當我們不能完全確定是物理內(nèi)存出現(xiàn)問題時,建議可以從以下幾個方面配合檢查:
◆檢查物理內(nèi)存是否存在
◆存儲設備是否正常
◆處理器是否正常
◆第三方內(nèi)核模塊是否有異常