“mce:[硬件错误]:记录机器检查事件”出现在系统日志中。我该怎么办?

22 hardware error-handling

我已经安装了最新版本的OSSEC (2.8.1) 并且我还启用了电子邮件通知。我收到了大量此类通知,说存在硬件错误和有关 mce 的一些信息:

OSSEC HIDS Notification.
2015 Apr 04 20:09:22

Received From: Bath-Towel->/var/log/syslog
Rule: 1002 fired (level 2) -> "Unknown problem somewhere in the system."
Portion of the log(s):

Apr  4 20:09:21 Bath-Towel kernel: [ 1873.680872] mce: [Hardware Error]: Machine check events logged



 --END OF NOTIFICATION
Run Code Online (Sandbox Code Playgroud)

那么这到底是什么意思呢?mce 代表什么?这个明显的硬件错误是我应该担心的吗?


操作系统信息:

Description:    Ubuntu 14.10
Release:    14.10
Run Code Online (Sandbox Code Playgroud)

Eri*_*lho 25

机器检查异常

机器检查异常(MCE)是一种类型的计算机的硬件错误的,当一个计算机的中央处理单元检测到硬件问题时。

您的计算机遇到硬件错误,内核在缓冲区中记录了一个事件。您可以mcelog用来记录和查看机器检查事件。从mcelog联机帮助页

X86 CPU 将 CPU 检测到的错误报告为机器检查事件 (MCE)。这些可能是 CPU 缓存中检测到的数据损坏、集成内存控制器在主内存中检测到的数据损坏、前端总线或 CPU 互连上的数据传输错误或其他内部错误。可能的原因可能是宇宙辐射、不稳定的电源、冷却问题、硬件损坏、运行的系统不符合规格或运气不好。

大多数错误可以由 CPU 通过内部错误纠正机制纠正。未纠正的错误会导致机器检查异常,这可能会杀死进程或使机器崩溃。少量更正的错误通常不会引起担忧,但大量可以表明未来的失败。

当发生更正或恢复的错误时,x86 内核会将描述 MCE 的记录写入通过 /dev/mcelog 设备可用的内部环形缓冲区。mcelog 从 /dev/mcelog 检索错误,将它们解码为人类可读的格式,并将它们打印在标准输出上或可选地打印到系统日志中。

如果您没有注意到任何崩溃,则错误可能已成功纠正。不过,我建议您安装mcelog以跟踪此类事件:

sudo apt-get install mcelog
Run Code Online (Sandbox Code Playgroud)

事件将被记录到/var/log/mcelog. 您还可以运行:

sudo mcelog --client
Run Code Online (Sandbox Code Playgroud)

查询mcelog守护进程是否有错误。

  • @Xen2050:在我的 Fedora 25 机器上,MCE 消息被写入日志,我可以用 `journalctl -b` 看到它们。 (5认同)
  • @LaryxDecidua 在 Debian 10 上,该功能已被 `rasdaemon` 取代 (3认同)
  • 我想知道为什么 MCE 错误不只是直接写入系统日志......可能*一些*很好的理由,也许 (2认同)
  • @Xen2050 因为消息的解码取决于体系结构,并且硬件制造商并不总是记录它。即使 PCIe 总线也可能产生错误。 (2认同)
  • @MartinUeding:`journalctl -b` 也适用于 Debian 10 “Buster”。然而,`mcelog` 包似乎不可用。 (2认同)