Linux檢查硬體錯誤工具—mcelog命令
導讀 | mcelog 是 系統上用來檢查硬體錯誤,特別是記憶體和CPU錯誤的工具。未糾正的錯誤是關鍵異常,如果 CPU 無法恢復,往往會導致系統上的核心錯誤。這會導致應用程式重置和中斷。對於未糾正的錯誤,mcelog 捕獲錯誤的能力取決於錯誤導致熱重啟還是硬重啟。如果是熱重啟,資訊會被 mcelog 捕獲,恢復後可看到。硬重啟會導致資料丟失,而且 mcelog 可能捕獲不到該事件。 |
安裝
[root@RedHat_test ~]# yum install mcelog.x86_64
mcelog的啟動方式
cron : 最老的方式,有確定,定時任務,會丟失一些
daemon : el7上用這種,守護程式的方式
trigger : 高階一點的方式,觸發的時候,看man mcelog
mcelog相關檔案
/dev/mcelog 裝置檔案 /var/log/mcelog messages日誌檔案 /etc/mcelog/mcelog.conf配置檔案 /var/run/mcelog.pid
預設故障日誌只記錄在/var/log/mcelog,並不記錄到系統日誌中。
如果需要在系統日誌中也體現,需修改/etc/mcelog/mcelog.conf檔案,將前面#去掉,並儲存。
mcelog後臺執行
[root@RedHat_test ~]# mcelog --daemon
檢視系統是否異常
1.手動執行mcelog的方式
[root@RedHat_test ~]# mcelog --daemon
檢視mcelog日誌
[root@RedHat_test ~]# tail /var/log/mcelog # 什麼也沒有輸出,表明正常
檢視mcelog守護程式是否檢測到錯誤資訊
[root@RedHat_test ~]# mcelog --client # 什麼也沒有輸出,表明正常
解析系統異常時的mcelog輸出
[root@RedHat_test ~]# mcelog --ascii < file.log # or或者 [root@RedHat_test ~]# mcelog --ascii --file file.log
測試
1.修改tolerate
mce-inject用於測試mcelog能否正確的獲取硬體錯誤資訊,並進行正確解碼,mce-inject可以向核心注入指定的錯誤資訊,因此,可以很方便的瞭解到mcelog的功能是否正常。
注意的是,當使用者利用mce-inject工具向核心注入不可恢復錯誤(如:fatal)時,會發生當機重新啟動等現象,當然,可以透過更改sys檔案系統下的tolerate檔案來避免此現象的發生。
[root@RedHat_test ~]# cd /sys/devices/system/machinecheck/machinecheck0 ---------------------------------------------------------------------------------------- 位置 : /sys/devices/system/machinecheck/machinecheck*/ 說明 : 其中machinecheck* 中的 *號由CPU的個數所決定的,如果是雙核的,則存在machinecheck0和machinecheck1兩個目錄,對應目錄裡都有一個tolerate檔案,tolerate中存放容忍程度值。 功能 : 向使用者提供一個可選擇的出現相應硬體錯誤時的容忍程度(tolerate),比如:當tolerate的值為1時,出現fatal錯誤時就會當機,重新啟動,並且該錯誤資訊並不被記錄;當tolerate的值為3時(注意該值只用於測試),在出現fatal錯誤時,機器會容忍該錯誤不予響應,不會出現當機重新啟動現象,並且會記錄相關錯誤資訊。 ---------------------------------------------------------------------------------------- [root@RedHat_test machinecheck0]# cat tolerant 1 [root@RedHat_test machinecheck0]# echo 3 > tolerant ---------------------------------------------------------------------------------------- 數值含義: tolerate的取值可以為0、1、2、3。 0: always panic on uncorrected errors, log corrected errors 1: panic or SIGBUS on uncorrected errors, log corrected errors 2: SIGBUS or log uncorrected errors (if possible), log corrected errors 3: never panic or SIGBUS, log all errors (for testing only)
2.安裝
[root@RedHat_test ~]# yum install gcc.x86_64 gcc-c++.x86_64 flex.x86_64 dialog.x86_64 ras-utils.x86_64 git.x86_64 ras-utils
3.捏造檔案
[root@RedHat_test ~]# cat correct CPU 1BANK 2 STATUS corrected RIP 0x12341234
4.載入mce-inject模組
[root@RedHat_test ~]# modprobe mce-inject
5.在終端執行檔案
[root@RedHat_test ~]# mce-inject ./correct
6.檢視/var/log/mcelog,/var/log/messages
[root@RedHat_test ~]# tail /var/log/mcelog TIME 1581565856Thu Feb 1311:50:56 2020 MCG status: MCi status: Corrected error Error enabled MCA: No Error STATUS 9000000000000000MCGSTATUS 0 MCGCAP 100010a APICID 1SOCKETID 0 MICROCODE 1 CPUID Vendor Intel Family 6Model 63 [root@RedHat_test ~]# cat /var/log/messages Feb 1311:59:01 RedHat_test systemd: [16423350.358386] Starting machine check poll CPU 1 Feb 1311:59:01 RedHat_test systemd: [16423350.371252] [Hardware Error]: Machine check events logged
同樣的方式,在el7上設定
tail /var/log/messages 可以看到日誌,但是/var/log/mcelog檔案預設在el7上不存在!!原因是預設儲存到/var/log/messages。如果希望儲存到/var/log/mcelog,需要在mcelog 的service檔案中,加入引數
--logfile=/var/log/mcelog
,然後重啟mcelog
ExecStart=/usr/sbin/mcelog --ignorenodev--daemon--syslog--logfile=/var/log/mcelog
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2901402/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LINUX 檢視硬體配置命令Linux
- 檢查和收集 Linux 硬體資訊的 7 個命令Linux
- 檢視Linux硬體的一些命令Linux
- 檢查 Linux 檔案系統中的錯誤:透過案例學習 FSCK 命令Linux
- Linux 系統下檢視硬體資訊命令大全Linux
- linux命令檢視記憶體命令free -h whereis locate find查詢命令Linux記憶體
- 用以檢查Linux記憶體使用的5個命令Linux記憶體
- linux檢視電腦硬體配置Linux
- 教你如何mac硬體做健康檢查Mac
- 如何給mac硬體做健康檢查Mac
- win10 d盤錯誤檢查如何操作_win10 d盤錯誤檢查詳細方法Win10
- 用 Linux 命令顯示硬體資訊Linux
- EtreCheckpro for mac(硬體資訊檢視工具)Mac
- win10硬體錯誤117怎麼解決?win10硬體錯誤117的解決辦法Win10
- 檢查 Linux 中記憶體使用情況的 8 條命令Linux記憶體
- TG Pro for mac 硬體溫度檢測工具Mac
- 硬體溫度檢測工具:TG Pro macMac
- 如何在 Linux 上查詢硬體規格Linux
- Linux基礎命令---host域名查詢工具Linux
- TG Pro for mac(Mac硬體溫度檢測工具)Mac
- Linux系統檢視硬體具體型號資訊Linux
- 如何mac硬體做健康檢查呢?快來看Mac
- 如何給mac電腦的硬體做健康檢查Mac
- cpp查錯誤
- C++ 在模板三個階段檢查錯誤C++
- win10系統出現硬體錯誤117如何解決_win10系統出現硬體錯誤117解決教程Win10
- 如何使用命令列工具檢查資料庫?命令列資料庫
- Linux基礎命令---檢查密碼檔案pwckLinux密碼
- linux怎麼檢視已裝好硬體驅動Linux
- 如何使用Apple診斷程式檢查Mac硬體問題APPMac
- Invisor for Mac(媒體檔案檢查工具)Mac
- Invisor for Mac媒體檔案檢查工具Mac
- DG日常檢查命令
- Linux 檢視計算機各個硬體的效能: sysbench (多執行緒效能測試工具)Linux計算機執行緒
- 日誌查詢錯誤
- 【ASK_ORACLE】檢查點錯誤“Cannot allocate new log”和“Checkpoint not complete”Oracle
- Linux檢視網路卡流量方法的工具和命令彙總Linux
- 使用 sudo 命令出現錯誤