它确实有所不同,只有在您需要在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的原因。
简而言之,如果您启用了所有功能,并且纠错算法无法纠正的位错误太多,那么您仍然会遇到错误,例如错误覆盖范围。但是,这些可能非常罕见。