什么ECC RAM失败看起来像

对于非ECC内存,我有一个体面的想法是什么故障看起来像; 某些随机事件开始出错(例如,PNG校验和validation失败,而不是下一次),那样的事情。 但是我对ECC RAM比较新。 当ECC RAM出现故障时,我期望什么? 我知道是否有一位翻转,它应该自动纠正,但我怎么知道是否有更严重的问题,或如果模块需要更换?

我发现有一份报告指出,系统可能会自动closures或不能开机,但是我不清楚为什么会这样。

Linux使用一个SIGBUS信号,使用翻转位超出恢复位的内存页(因此一个ECC字有2个翻转)来杀死程序。 然后将该页面黑名单,以免重复使用。

当重复地遇到纠正的错误时(通常不是瞬时翻转,而是纠正后仍然存在的硬错误),页面会透明地迁移到另一个物理页面,但使用相同的虚拟地址。 这是通过一个“泄漏桶”计数器来完成的,该计数器在过去的X个单位时间内对每页的ECC错误进行计数。

这些方法分别被称为硬和软页面离线。 您可以阅读更多的信息,并通过mcelog访问错误统计信息/日志,这是从2.6版开始的所有Linux内核的一部分。 请注意,如果您愿意,可以对其进行设置,以便在出现每个错误时内核会出现故障并重启机器。

这也存在于Solaris系统中的内存页退休的名称下,其他操作系统无疑有它们自己的版本,尽pipe我不知道我头上的名字或引用。

简而言之,硬件报告错误,操作系统减轻其影响。 所以你不会有很多症状,但你可能会问你的操作系统或工具的统计数据。

我只看到一次ECC错误。 这是在戴尔服务器上,问题出现在几个地方:

  • 在vCenter服务器(这是一个VMWare主机)通过IPMI
  • 在BIOS日志文件中 – 通常,您可以在启动时进入安装程序以查看logging的错误
  • 通过戴尔远程pipe理工具或其他系统的类似

鉴于许多服务器中存在大量内存,单个错误可能不会损害正在运行的程序,足以导致崩溃。 如果错误发生在尚未分配给特定程序的RAM中,则可能只会导致微妙的问题,或者根本不会造成任何问题。

而且,由于它是ECC RAM,单个位错误是可纠正的,不会损害正在运行的程序。 具有ECC RAM的点或多或less是上面给出的两件事情:

  • 检测和logging错误的能力
  • 纠正单个位错误的能力

所以 – 你在pipe理工具中寻找错误,一般来说,你应该比使用非ECC内存更less的错误。 如果错误开始出现,即错误率增加到(非常低)背景事件率以上,则总是build议更换模块。 希望能够清楚一点。

编辑:也看到这个问题更多关于同一主题。

编辑2:我实际上只是有另一个 – 这是一个屏幕截图为那些感兴趣的,看起来像在VMWare的vCenter(硬件ID炒): 内存错误在vCenter中显示