一種發現伺服器系統的mca錯誤的方法及裝置製造方法
2023-08-10 07:37:36
一種發現伺服器系統的mca錯誤的方法及裝置製造方法
【專利摘要】本發明公開了一種發現伺服器系統的自動檢查架構MCA錯誤的方法,包括:讀取第一MCA錯誤信息並保存;按照預先設置的測試周期,讀取第二MCA錯誤信息;比較第二MCA錯誤信息與第一MCA錯誤信息,當第二MCA錯誤信息與第一MCA錯誤信息不一致時,退出本流程並報錯;否則,繼續執行按照預先設置的測試周期,讀取第二MCA錯誤信息並進行比較的步驟。本申請的技術方案能夠避免重複報錯的問題,及時的發現了MCA錯誤並報錯,較大的提高了伺服器的穩定性。
【專利說明】-種發現伺服器系統的MCA錯誤的方法及裝置
【技術領域】
[0001] 本發明涉及伺服器測試【技術領域】,尤指一種發現伺服器系統的機器自動檢查架構 (MCA)錯誤的方法及裝置。
【背景技術】
[0002] 機器自動檢查架構(MCA, Machine Check Architecture)是因特爾公司提出的一 種中央處理器(CPU)將硬體錯誤報告給作業系統(0S)的伺服器錯誤自檢機制。目前主流 的因特爾處理器,如奔騰4(Pentium4),志強(Xeon)系列以及安騰(Itanium)系列處理器都 支持MCA機制。MCA機制主要是偵測並報告硬體錯誤,如系統總線(System Bus)錯誤,內存 錯誤檢查和糾正(ECC)錯誤,奇偶校驗錯誤,緩存(Cache)錯誤等。MCA機制在處理器內部 主要通過一系列特殊模塊寄存器(MSR,Model Specific Registers)實現。
[0003] 在伺服器系統運行穩定性測試時,處理器和內存出錯的機會更大,會產生用於描 述MCA機制偵測並報告硬體錯誤的MCA錯誤信息。Linux作業系統會將從CPU獲得的MCA 錯誤信息存放在/var/log系統日誌文件夾下的mcelog文件中,MCA錯誤信息主要包括核 心(CPU CORE)錯誤和非核心(CPU UNC0RE)錯誤。這樣如果CPU出現MCA機制中包含的錯 誤,用戶可在mcelog文件中發現並針對這些錯誤進行解決,以避免這些錯誤不能得到及時 解決從而導致系統宕機或重啟,對客戶造成重要數據丟失的無法挽回後果。如何及時的發 現MCA錯誤是一個亟待解決的難題。
[0004] 因特爾公司的調試工具(ITP)可以與主板連接,直接讀取CPU的寄存器信息,並查 看該信息中是否有MCA錯誤,利用ITP發現MCA錯誤導致了重複報錯的問題,不能夠及時的 發現MCA錯誤。
【發明內容】
[0005] 為了解決技術問題,本發明提供一種發現伺服器系統的機器自動檢查架構(MCA) 錯誤的方法及裝置,能夠避免重複報錯的問題,及時的發現MCA錯誤並報錯,較大的提高了 伺服器的穩定性。
[0006] 為了達到發明目的,本發明公開了 一種發現伺服器系統的機器自動檢查架構 (MCA)錯誤的方法,包括以下步驟:
[0007] 讀取第一 MCA錯誤信息並保存;
[0008] 按照預先設置的測試周期,讀取第二MCA錯誤信息;
[0009] 比較第二MCA錯誤信息與第一 MCA錯誤信息,當第二MCA錯誤信息與第一 MCA錯 誤信息不一致時,退出本流程並報錯;否則,繼續執行按照預先設置的測試周期,讀取第二 MCA錯誤信息並進行比較的步驟。
[0010] 進一步地,在讀取第一 MCA錯誤信息並保存之前,該方法還包括:運行該伺服器系 統穩定性測試軟體。
[0011] 進一步地,伺服器系統為Linux作業系統。
[0012] 進一步地,伺服器系統使用支持該MCA機制的因特爾處理器。
[0013] 進一步地,第一 MCA錯誤信息與第二MCA錯誤信息存儲在mcelog文件中,mcelog 文件存儲在/var/log系統日誌文件夾中。
[0014] 本發明還公開了一種發現伺服器系統的機器自動檢查架構(MCA)錯誤的裝置,包 括:
[0015] 第一獲取模塊,用於讀取第一 MCA錯誤信息並保存;
[0016] 第二獲取模塊,用於按照預先設置的測試周期,讀取第二MCA錯誤信息;
[0017] 比較模塊,用於比較第二MCA錯誤信息與第一 MCA錯誤信息;
[0018] 報錯模塊,用於當第二MCA錯誤信息與第一 MCA錯誤信息不一致時,則停止並報 錯;
[0019] 所述第二獲取模塊,還用於當第二MCA錯誤信息與第一 MCA錯誤信息一致時,按照 預先設置的測試周期,讀取第二MCA錯誤信息。
[0020] 進一步地,上述裝置還包括:
[0021] 測試模塊,用於在所述讀取第一 MCA錯誤信息並保存之前,運行所述伺服器系統 穩定性測試軟體。
[0022] 進一步地,伺服器系統為Linux作業系統。
[0023] 進一步地,伺服器系統使用支持所述MCA機制的因特爾處理器。
[0024] 進一步地,第一 MCA錯誤信息與第二MCA錯誤信息存儲在mcelog文件中,mcelog 文件存儲在/var/log系統日誌文件夾中。
[0025] 本申請技術方案包括:讀取第一 MCA錯誤信息並保存;按照預先設置的測試周期, 讀取第二MCA錯誤信息;比較第二MCA錯誤信息與第一 MCA錯誤信息,當第二MCA錯誤信息 與第一 MCA錯誤信息不一致時,退出本流程並報錯;否則,繼續執行按照預先設置的測試周 期,讀取第二MCA錯誤信息並進行比較的步驟。本申請的技術方案能夠避免重複報錯的問 題,及時的發現了 MCA錯誤並報錯,較大的提高了伺服器的穩定性。
【專利附圖】
【附圖說明】
[0026] 此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發 明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中:
[0027] 圖1為本發明發現伺服器系統的MCA錯誤的方法的流程圖;
[0028] 圖2為本發明發現伺服器系統的MCA錯誤的裝置的結構示意圖。
【具體實施方式】
[0029] 下面結合附圖及具體實施例對本發明進行詳細說明。
[0030] 圖1為本發明發現伺服器系統的MCA錯誤的方法的流程圖,如圖1所示,包括以下 步驟:
[0031] 步驟101,讀取第一 MCA錯誤信息並保存。
[0032] MCA錯誤信息存儲在mcelog文件中,mcelog文件存儲在/var/log系統日誌文件 夾中。本文中為了與後續讀出的MCA錯誤信息相區分,這裡將本流程第一次執行時讀出的 MCA錯誤信息稱為第一 MCA錯誤信息,將後續讀出的MCA錯誤信息稱為第二錯誤信息。
[0033] 本步驟中,如果讀取的第一 MCA錯誤信息中存在MCA錯誤,則報錯並保存第一 MCA 錯誤信息;如果讀取的第一 MCA錯誤信息中不存在MCA錯誤,則保存第一 MCA錯誤信息。 [0034] 需要說明的是,在運行伺服器系統穩定性測試軟體後,讀取的第一 MCA錯誤信息 中可能並不存在MCA錯誤。
[0035] 本領域技術人員熟知如何通過編寫腳本語言來實現讀取/var/log系統日誌文件 夾下的mcelog文件中的MCA錯誤信息,在此不再贅述。
[0036] 在本步驟之前,還包括:運行伺服器系統穩定性測試軟體。
[0037] 在運行伺服器系統穩定性測試軟體之後,讀取第一 MCA錯誤信息即可,間隔不要 太長時間。需要說明的是,關於如何運行伺服器系統穩定性測試軟體,是本領域技術人員所 熟知的,在此不再贅述。之所以先運行伺服器系統穩定性測試軟體,是因為在伺服器系統運 行穩定性測試時,處理器和內存出錯的機會更大。這樣以便後續步驟發現錯誤。
[0038] 步驟102,按照預先設置的測試周期,讀取第二MCA錯誤信息。
[0039] 這裡所說的預先設置的測試周期可以依據實際情況(如需要及時發現錯誤的時 間)以及伺服器系統的性能而定,例如可以是半個小時、一個小時、兩個小時等等,在此並 不做限制。
[0040] 步驟103,比較第二MCA錯誤信息與第一MCA錯誤信息是否一致,如果二者不一致, 退出本流程並報錯;如果二者一致,返回步驟102。
[0041] 如果系統日誌文件夾中新增加的MCA錯誤信息都會記錄到mcelog文件中,所以如 果第二MCA錯誤信息與第一 MCA錯誤信息不一致則說明系統有新增加的MCA錯誤。
[0042] 本申請方法中,伺服器系統為Linux作業系統。
[0043] 進一步地,伺服器系統使用支持MCA機制的因特爾處理器。
[0044] 圖2為本發明發現伺服器系統的MCA錯誤的裝置的結構示意圖,如圖2所示,包 括:第一獲取模塊、第二獲取模塊、比較模塊和報錯模塊。其中,
[0045] 第一獲取模塊,用於讀取第一 MCA錯誤信息並保存。
[0046] 如果讀取的第一 MCA錯誤信息中存在MCA錯誤,則報錯並保存第一 MCA錯誤信息; 如果讀取的第一 MCA錯誤信息中不存在MCA錯誤,則保存第一 MCA錯誤信息。
[0047] 第二獲取模塊,用於按照預先設置的測試周期,讀取mcelog文件中的第二MCA錯 誤信息。
[0048] 第一 MCA錯誤信息與第二MCA錯誤信息存儲在mcelog文件中,mcelog文件存儲 在/var/log系統日誌文件夾中,需要說明的是,本領域技術人員熟知如何通過編寫腳本語 言來實現讀取/var/log系統日誌文件夾下的mcelog文件中的MCA錯誤信息,在此不再贅 述。
[0049] 這裡所述的預先設置的測試周期可以依據實際情況(如需要及時發現錯誤的時 間)以及伺服器系統的性能而定,例如可以是半個小時、一個小時、兩個小時等等,在此並 不做限制。
[0050] 比較模塊,用於比較第二MCA錯誤信息與第一 MCA錯誤信息。
[0051] 報錯模塊,用於當第二MCA錯誤信息與第一 MCA錯誤信息不一致時,則報錯。
[0052] 第二獲取模塊,還用於當第二MCA錯誤信息與第一 MCA錯誤信息一致時,按照預先 設置的測試周期,讀取第二MCA錯誤信息。
[0053] 裝置還包括:測試模塊,用於在讀取第一 MCA錯誤信息並保存之前,運行伺服器系 統穩定性測試軟體。
[0054] 進一步地,伺服器系統為Linux作業系統。
[0055] 進一步地,伺服器系統使用支持MCA機制的因特爾處理器。
[0056] 本領域普通技術人員可以理解方法中的全部或部分步驟可通過程序來指令相關 硬體完成,所述程序可以存儲於計算機可讀存儲介質中,如只讀存儲器、磁碟或光碟等。可 選地,實施例的全部或部分步驟也可以使用一個或多個集成電路來實現。相應地,實施例中 的各模塊/單元可以採用硬體的形式實現,也可以採用軟體功能模塊的形式實現。本申請 不限制於任何特定形式的硬體和軟體的結合。
[0057] 以上所述,僅為本發明的較佳實例而已,並非用於限定本發明的保護範圍。凡在本 發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護範 圍之內。
【權利要求】
1. 一種發現伺服器系統的自動檢查架構MCA錯誤的方法,包括: 讀取第一 MCA錯誤信息並保存; 按照預先設置的測試周期,讀取第二MCA錯誤信息; 比較第二MCA錯誤信息與第一MCA錯誤信息,當第二MCA錯誤信息與第一MCA錯誤信息 不一致時,退出本流程並報錯;否則,繼續執行按照預先設置的測試周期,讀取第二MCA錯 誤信息並進行比較的步驟。
2. 根據權利要求1所述的方法,其特徵在於,在所述讀取第一 MCA錯誤信息並保存之 前,所述方法還包括:運行所述伺服器系統穩定性測試軟體。
3. 根據權利要求1所述的方法,其特徵在於,所述伺服器系統為Linux作業系統。
4. 根據權利要求1或3所述的方法,其特徵在於,所述伺服器系統使用支持所述MCA機 制的因特爾處理器。
5. 根據權利要求1或3所述的方法,其特徵在於,所述第一 MCA錯誤信息與第二MCA錯 誤信息存儲在mcelog文件中,mcelog文件存儲在/var/log系統日誌文件夾中。
6. -種發現伺服器系統的自動檢查架構MCA錯誤的裝置,包括: 第一獲取模塊,用於讀取第一 MCA錯誤信息並保存; 第二獲取模塊,用於按照預先設置的測試周期,讀取第二MCA錯誤信息; 比較模塊,用於比較第二MCA錯誤信息與第一 MCA錯誤信息; 報錯模塊,用於當第二MCA錯誤信息與第一 MCA錯誤信息不一致時,則停止並報錯; 所述第二獲取模塊,還用於當第二MCA錯誤信息與第一 MCA錯誤信息一致時,按照預先 設置的測試周期,讀取第二MCA錯誤信息。
7. 根據權利要求6所述的裝置,其特徵在於,所述裝置還包括: 測試模塊,用於在所述讀取第一 MCA錯誤信息並保存之前,運行所述伺服器系統穩定 性測試軟體。
8. 根據權利要求6所述的裝置,其特徵在於,所述伺服器系統為Linux作業系統。
9. 根據權利要求6或8所述的裝置,其特徵在於,所述伺服器系統使用支持所述MCA機 制的因特爾處理器。
10. 根據權利要求6或8所述的裝置,其特徵在於,所述第一 MCA錯誤信息與第二MCA 錯誤信息存儲在mcelog文件中,mcelog文件存儲在/var/log系統日誌文件夾中。
【文檔編號】G06F11/22GK104102563SQ201410327862
【公開日】2014年10月15日 申請日期:2014年7月10日 優先權日:2014年7月10日
【發明者】白秀楊, 葉豐華 申請人:浪潮(北京)電子信息產業有限公司