我有一台配备双 Intel Xeon E5503 CPU 的 Dell PowerEdge R710。它有 96GB(12x8GB)的 ECC DIMM。在其 BIOS 中,内存配置为“高级 ECC”。
我的问题是,如果我的 DIMM 已经是 ECC,那么在 BIOS 中启用此“高级 ECC”模式是否有意义,还是应该切换到“优化”?
戴尔对这些模式的描述如下:
高级 ECC 模式 此模式使用两个 MCH 并将它们“绑定”在一起以模拟 128 位数据总线 DIMM。这主要用于实现基于 x8 DRAM 技术的 DIMM 的单设备数据校正 (SDDC)。每种内存模式下的 x4 DIMM 均支持 SDDC。一个 MCH 完全未使用,并且此通道中安装的任何内存都会在 POST 期间生成警告消息。
内存优化模式在此模式下,MCH 彼此独立运行;例如,一个 MCH 可以处于空闲状态,一个 MCH 可以执行写入操作,另一个 MCH 可以准备执行读取操作。内存可以安装在一个、两个或三个通道中。要充分发挥内存优化模式的性能优势,每个 CPU 的所有三个通道都应填充。这意味着某些“非典型”内存配置(例如 3GB、6GB 或 12GB)将产生最佳性能。除非需要特定的 RAS 功能,否则建议使用此模式。
答案1
这确实有区别,但只有当你需要 x4 或 x8 设备上的 RAS(可靠性、可用性和服务)功能并了解你的需求权衡时,这才有意义。更多详细信息可在戴尔白皮书中解释Dell™ PowerEdge™ 服务器 2009 - 内存。
此外,有关 R710 的具体配置和布局细节可在 PowerEdge R710 的技术指南中找到 - (请谷歌搜索,因为我没有链接信誉)。
需要注意的重要问题是芯片上的 ECC 与戴尔 BIOS 提供的用于单设备数据校正 (SDDC) 的“高级 ECC”之间的区别。两者都会对性能产生影响。ECC 将在写入芯片期间从错误中恢复。但是,SDDC 更进一步,将组织位,以便整个芯片发生故障时仍可恢复。查看示例和详细信息SDDC E7500 芯片组
问题在于,在您对机器的具体使用中,性能和/或可靠性是否是最重要的考虑因素。如果芯片故障会导致机器上关键数据或使用丢失,并且它在实施中不冗余,那么高级 ECC 可能是一个很好的选择。但是,这样做可能会影响性能,这对您来说可能更重要。
我已经在 Dell PowerEdge 服务器上现场实现了这两种方法,用于单个 Microsoft SQL Server 实现。如果我能提供更多帮助,请发表评论让我知道。
希望有所帮助。
编辑:覆盖范围差距/ECC 实施
是的,即使您同时实施两者,也存在覆盖范围差距。由于您专门使用高可用性服务器集群,恕我直言,您应该使用高级 ECC。与集群设备的好处相比,您的性能影响微乎其微。根据 Crucial 的说法,您只需要ECC 内存性能下降 2%一般来说。
差距将更具体地体现在发生的错误类型以及每种错误处理方式上。在您的特定情况下,它不应转化为数据丢失。由于这是一个企业 DBMS,错误、并发问题等在软件级别进行管理,以防止数据丢失。正确配置的 DBMS 中会保留更改的详细历史记录,并且使用它的软件通常可以设置为在发生严重错误时让事务“回滚”。
ECC 实现
ECC 将尝试纠正内存读写中的任何位错误。但是,如果错误更严重,那么即使是 ECC 也无法恢复,从而导致潜在的数据丢失。关于 ECC 的更多讨论,请访问ServerFault/什么是 ECC RAM 以及为什么它更好?
ECC 内存可有效维护内存系统,避免出现单位错误……
标准化数据保护委员会
如果您参考上面的 E7500 芯片组文档(注意Intel 的 55xx/56xx 需要登录/合作关系,但想法类似,这也是我最初没有链接的原因),它描述了 SDDC 及其实现方式。基本上,它使用一种技术来组织写入内存的字,以确保所有字都以这样的方式写入每个字仅包含一个位错误即该字应该可以从单位错误中恢复(如上所述)。 这是每个字,因此它可以通过纠正每个字的错误来恢复 x4 设备上最多 4 位错误(每个字 1 个)和 x8 设备上最多 8 位错误(仍然每个字 1 个)。
额外的错误、更多的位错误、总内存故障、通道故障、总线故障等仍然会导致严重的问题,但这就是您拥有集群和企业 DBMS 的原因。
简而言之,如果您启用了所有功能,但错误纠正算法无法纠正的位错误太多,那么您仍然会遇到错误,即错误覆盖缺口。不过这种情况非常罕见。