我是否应该在带有ECC DIMM的Dell PowerEdge R710 BIOS中使用BIOS“高级ECC”?


14

我有一个带双Intel Xeon E5503 CPU的Dell PowerEdge R710。它具有96GB(12x8GB)的ECC DIMM。在其BIOS中,内存配置为“高级ECC”。

我的问题是,如果我的DIMM已经是ECC,在BIOS中启用此“高级ECC”模式是否有意义,还是应该切换到“优化”状态?

Dell对这些模式的描述如下:

高级ECC模式 此模式使用两个MCH并将它们“绑定”在一起以模拟128位数据总线DIMM。这主要用于实现基于x8 DRAM技术的DIMM的单设备数据校正(SDDC)。在每种内存模式下,基于x4的DIMM均支持SDDC。一个MCH完全未使用,并且此通道中安装的任何内存将在POST期间生成警告消息。

内存优化模式在这种模式下,MCH彼此独立运行;例如,一个可能空闲,一个可能正在执行写操作,另一个可能正在准备读操作。内存可以安装在一个,两个或三个通道中。为了完全实现内存优化模式的性能优势,应填充每个CPU的所有三个通道。这意味着某些“非典型”内存配置(例如3GB,6GB或12GB)将产生最佳性能。除非需要特定的RAS功能,否则这是推荐的模式。

Dell PowerEdge R710系统硬件用户手册(PDF)

Answers:


23

它确实有所不同,只有在您需要在x4或x8设备上使用RAS(可靠性,可用性和服务)功能并且了解需要权衡的情况时,它才有意义。有关更多详细信息,请参阅Dell白皮书《Dell™PowerEdge™服务器2009-内存》

另外,PowerEdge R710的技术指南中提供了R710特定的配置和布局以及详细信息-(使用Google,因为我没有链接的声誉)。

要注意的重要问题是芯片上的ECC与Dell BIOS的“单设备数据校正(SDDC)”提供的“高级ECC”之间的区别。您将对两者的性能都有影响。ECC将在写入芯片期间从错误中恢复。但是,SDDC会更进一步,并且将组织这些位,以使整个芯片可能发生故障并且仍然可以恢复。查看示例和详细信息SDDC E7500芯片组

问题是您的性能和/或可靠性是否是您特定使用机器时最需要关注的问题。如果芯片故障会导致本机上的关键数据丢失或使用不畅,并且在实现过程中没有冗余,那么高级ECC可能是一个不错的选择。但是,这样做会对性能产生影响,这可能对您更重要。

我已经在Dell PowerEdge服务器上的单个Microsoft SQL Server实现中实现了这两个功能。如果需要更多帮助,请发表评论以告知我。

希望能有所帮助。

编辑:覆盖范围/ ECC实现

是的,即使您同时实现这两者,也存在覆盖差距。由于您专门使用的是高可用性服务器群集,因此恕我直言,您应该使用高级ECC。与群集设备的优势相比,对性能的影响很小。根据Crucial的说法,ECC内存的性能通常只会下降2%

差距将更具体地取决于发生的错误的类型以及每种错误如何处理。在您的特定情况下,它不应转换为数据丢失。由于这是企业DBMS,因此在软件级别管理错误,并发问题等,以防止数据丢失。在正确配置的DBMS中保留了详细的更改历史记录,并且使用该软件的软件通常可以设置为在发生严重错误时使事务“回滚”。

ECC实施

ECC将尝试纠正存储器读/写中的任何位错误。但是,如果错误更为严重,则甚至ECC也无法恢复,从而导致潜在的数据丢失。ServerFault上也有关于ECC的更多讨论/什么是ECC ram?为什么它更好?

根据ECC_Memory上的维基百科

ECC内存可有效维护内存系统,避免出现单位错误。

SDDC

如果您参考上面的E7500芯片组文档(请注意Intel的55xx / 56xx需要登录/合作,但想法很相似,这就是为什么我最初没有链接的原因),它描述了SDDC及其实现方式。基本上,它使用一种组织写入内存的字的技术,以确保所有字都以这样的方式写入,即每个字将仅包含单个位错误,即该字应可从单个位错误中恢复(如上所述)。 现在是每个字,因此可以通过纠错每个字来从x4设备上的多达4位错误(每个单词1个)和x8设备上的多达8位错误(每个单词仍为1个)中恢复。

其他错误,更多位错误,总内存故障,通道故障,总线故障等仍然都可能导致可怕的问题,但这就是为什么拥有群集和企业DBMS的原因。

简而言之,如果您启用了所有功能,并且纠错算法无法纠正的位错误太多,那么您仍然会遇到错误,例如错误覆盖范围。但是,这些可能非常罕见。


更具体地说,这是一组运行Oracle DB集群的3个相同的R710。因此,单台机器的可用性并不是最重要的。但是,数据损坏令人不安。我看过R710技术指南。它没有太多有关内存的附加信息。那么,使用on-dimm ECC它将检测/纠正dimm芯片内的错误吗?但是,高级ECC是否可以检测/纠正整个调光错误?如果是这种情况,这两种方法之间是否存在覆盖空白?
Mxx 2012年

@Mxx我已经更新了答案以尝试解释。恕我直言,因为您正在运行Oracle数据库集群,所以我怀疑您会丢失数据。万一发生故障,DBMS可以防止数据丢失和其他问题。对于您的群集,我将启用Advanced ECC,因为性能应该可以忽略不计,但是如果您有疑问,可以在负载下对其进行测试。
马修·里德

非常感谢您的回答。对不起,我仍然不清楚一件事。“高级ECC”能为我提供哪些保护呢?如果我们使用的是dbms,那么将bios切换到“优化模式”以获得三通道内存配置的性能优势是否有意义,并且将受到on-dimm ECC和Oracle自己的验证的保护?
Mxx 2012年

@Mxx我想这两种方法都不能完全保证。但是,使用“高级ECC”选项“开”,您将能够从更多错误中恢复,而无需干预(总的发生位错误的可能性更低),并且性能影响应该很低。在DBMS上进行纠正的尝试肯定要少得多。尽管DBMS可以保存您的数据,但最终用户的体验可能仍会以软件崩溃和/或可能较大的操作的回滚来呈现。我想通过监视芯片是否发生故障以及错误频率是否增加,Advanced ECC可以让您有时间彻底更换DIMM。
马修·里德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.