ECC RAM 故障是什么样的

arc*_*mac 9 ecc

对于非 ECC 内存,我对失败的情况有一个很好的了解;某些随机的事情开始出错(例如 PNG 校验和验证失败一次,然后不是下一次),诸如此类。但我对 ECC RAM 比较陌生。当 ECC RAM 出现故障时,我会期待什么?我知道是否有一位翻转,它应该会自动更正,但我怎么知道是否有更严重的问题或是否需要更换模块?

我发现一份报告表明系统可能会自发关闭或无法开机,但我不清楚为什么会这样。

Cim*_*ali 5

Linux 使用 SIGBUS 信号,使用内存页终止程序,位翻转无法恢复(因此一个 ECC 字与 2 个翻转)。然后它将该页面列入黑名单,使其不会被重用。

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

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

这在 Solaris 系统中也以内存页退休的名义存在,其他操作系统无疑都有自己的版本,尽管我不知道我头顶的名称或引用。

简而言之,硬件会报告错误,而操作系统会减轻其影响。因此,您可能不会出现很多症状,但您可能会询问您的操作系统或工具以获取统计信息。


MrM*_*tyk 4

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

  • 在 vCenter 服务器(它是 VMWare 主机)中通过 IPMI
  • 在 BIOS 日志文件中 - 通常,您可以在启动时进入设置以查看记录的错误
  • 通过戴尔远程管理工具或其他系统的类似工具

考虑到许多服务器中存在的内存量,单个错误可能不会对正在运行的程序造成足以导致崩溃的影响。如果错误发生在尚未分配给特定程序的 RAM 中,则可能只会导致微妙的问题,或者可能根本不会出现问题。

此外,由于它是 ECC RAM,单位错误是可以纠正的,不会损害正在运行的程序。拥有 ECC RAM 的意义或多或少是上面给出的两点:

  • 检测和记录错误的能力
  • 纠正单位错误的能力

因此,您在管理工具中查找错误,一般来说,您得到的错误应该比使用非 ECC RAM 少。如果错误开始出现,即如果错误率增加到高于(非常低的)背景事件率,则始终建议更换模块。希望这能澄清一点。

编辑:另请参阅此问题以了解有关同一主题的更多信息。

编辑 2:我实际上刚刚有了另一个 - 这是一个屏幕截图,供那些对 VMWare vCenter 中的外观感兴趣的人使用(硬件 ID 已混乱): vCenter 中显示的内存错误