对于非 ECC 内存,我对失败的情况有一个很好的了解;某些随机的事情开始出错(例如 PNG 校验和验证失败一次,然后不是下一次),诸如此类。但我对 ECC RAM 比较陌生。当 ECC RAM 出现故障时,我会期待什么?我知道是否有一位翻转,它应该会自动更正,但我怎么知道是否有更严重的问题或是否需要更换模块?
我发现一份报告表明系统可能会自发关闭或无法开机,但我不清楚为什么会这样。
Linux 使用 SIGBUS 信号,使用内存页终止程序,位翻转无法恢复(因此一个 ECC 字与 2 个翻转)。然后它将该页面列入黑名单,使其不会被重用。
当反复遇到更正的错误时(通常不是瞬时翻转的情况,而是在更正后仍然存在的硬错误),页面被透明地迁移到另一个物理页面,但使用相同的虚拟地址。这是通过“漏桶”计数器完成的,该计数器在最后 X 个单位的时间内对每页的 ECC 错误进行计数。
这些方法分别称为硬页和软页离线。您可以通过mcelog阅读更多信息并访问错误统计信息/日志,它是从 2.6 版开始的所有 Linux 内核的一部分。请注意,如果您愿意,您可以设置它,以便您的内核在每次出现错误时恐慌并重新启动机器。
这在 Solaris 系统中也以内存页退休的名义存在,其他操作系统无疑都有自己的版本,尽管我不知道我头顶的名称或引用。
简而言之,硬件会报告错误,而操作系统会减轻其影响。因此,您可能不会出现很多症状,但您可能会询问您的操作系统或工具以获取统计信息。
我只见过一次 ECC 错误发生。这是在戴尔服务器上,问题出现在几个地方:
考虑到许多服务器中存在的内存量,单个错误可能不会对正在运行的程序造成足以导致崩溃的影响。如果错误发生在尚未分配给特定程序的 RAM 中,则可能只会导致微妙的问题,或者可能根本不会出现问题。
此外,由于它是 ECC RAM,单位错误是可以纠正的,不会损害正在运行的程序。拥有 ECC RAM 的意义或多或少是上面给出的两点:
因此,您在管理工具中查找错误,一般来说,您得到的错误应该比使用非 ECC RAM 少。如果错误开始出现,即如果错误率增加到高于(非常低的)背景事件率,则始终建议更换模块。希望这能澄清一点。
编辑:另请参阅此问题以了解有关同一主题的更多信息。
编辑 2:我实际上刚刚有了另一个 - 这是一个屏幕截图,供那些对 VMWare vCenter 中的外观感兴趣的人使用(硬件 ID 已混乱):

| 归档时间: |
|
| 查看次数: |
3850 次 |
| 最近记录: |