RHEL:当内存开始出现故障时会发生什么?

RHEL:当内存开始出现故障时会发生什么?

我收到了一些服务器 RAM 的 ecc 警告。这是一台相当旧的机器,因此这些部件没有任何保修。

如果这是 Windows,我预计会看到 BSOD。

我对 RH5.x 有何期望?

答案1

在 RHEL 系统上,您将看到内核环形缓冲区输出 ( dmesg) 中积累了大量错误,以及/var/log/messages。一旦超过 ECC 阈值,应用程序可能会崩溃。服务器可能会热启动。您可能会出现内核恐慌。机器检查异常日志将有指示。我甚至见过系统重新启动的情况,禁用损坏的 DIMM。

如果这是企业服务器硬件,系统的事件日志可能会充满错误。服务器的看门狗可能会超时并强制系统冷启动。

此时,您知道有问题了...因此正确的解决方案是更换损坏的 DIMM。在大多数情况下,故障模式并不好,因此最好避免这种痛苦。很高兴 ECC RAM 向您发出了警告。

答案2

Linux 中与 BSOD 对应的是内核恐慌。当内核发现无法处理的情况时(例如,文件系统损坏错误导致试图释放已经空闲的 inode 等情况),它会向几乎所有地方(通常通过 syslog)打印恐慌警告,并停止处理器。

如果内存出现无法检测到的故障,那么内核迟早会遇到这种情况并产生恐慌。

我在 Google 上搜索例子,发现了很多;其中一个是http://www.google.co.uk/imgres?imgurl=https://www.virtualbox.org/raw-attachment/ticket/9305/rec.jpeg&imgrefurl=https://www.virtualbox.org/ticket/9305&h=908&w=1229&sz=248&tbnid=JzS7Yn9aNlPUXM:&tb nh=90&tbnw=122&zoom=1&usg=__gtpppLj2_g4OvWr-d5QA8DlK7a0=&docid=IqDtDvjAV31hEM&sa=X&ei=zcDmUcORFsao0QXrzYGADA&ved=0CEwQ9QEwBA&dur=1342#imgdii=JzS7Yn9aNlPUXM%3A%3BAjx9NoISgkV-XM%3BJzS7Yn9aNlPUXM%3A是该类型的一个很好的例子;您可以看到时间戳为 7.568856 的行,内核在此处正式宣布放弃。

还要注意的是,它不会同步文件系统,当它无法再确保其自身的完整性时,这是一种明智的预防措施。这会使这些情况难以调试,因为缺乏同步意味着日志消息永远不会进入本地日志文件。这反过来也是我使用远程系统日志的主要原因之一:错误仍将发送到远程日志主机,并且通常可以在那里找到。

相关内容