我非常注重构建稳定的机器 - 因为我非常讨厌崩溃、重启、奇怪的行为等 - 因此错误纠正又名 ECC RAM 似乎可以解决一个大问题:内存错误。
但它真的有效吗?是否有可衡量的优势,例如更少的崩溃或其他行为?
除了成本之外,为什么不在新 PC 中使用 ECC 内存?为什么 ECC 功能主要在服务器/工作站级机器上可用且受支持,而在面向消费者的主板上却不可用?
答案1
我已经在服务器中使用 ECC 内存几年了。ECC 在你大量使用机器时真的很管用,比如“每天使用超过 12-16 小时”。我搭建的没有 ECC 的小型白盒服务器迟早会出现需要重启的“问题”,但 ECC 机器绝不有这些。
所以我的答案是:如果你使用你的电脑很多,那么很有可能是的。如果你每天 24 小时都在使用电脑,那么它应该是必备的。
市面上有一些支持 ECC 的主板。它们通常属于“高端”产品,但只要稍加研究,你就能从各个制造商那里找到它们。唯一需要考虑的一点是记得在 BIOS 中启用 ECC 支持。
谷歌已经就此问题展开了激烈争论。 看http://blogs.zdnet.com/storage/?p=638看看这究竟如何影响现代系统。
答案2
我只认为 ECC 值得在服务器需要它。维基百科:
计算机系统中的错误检测和纠正似乎时而流行时而过时。当被问及为什么将这一点从 CDC 6600 中剔除时,Seymour Cray 曾说过一句名言:“平价是为农民准备的”。他在 CDC 7600 中加入了平价,据说他说:“我了解到很多农民都购买电脑。”
我在互联网上找不到可靠的消息来源,只有模糊的说法称每月每 GB 会出现 1 位错误,这显然是荒谬的;如果真是这样,世界各地的服务器都会崩溃。远程真的。
一些亮点MetaFilter 线程来自实际的服务器管理员:
我认为 ECC 很酷,但是我既有带 ECC 的服务器,也有不带 ECC 的服务器,无论它的存在与否,都没有产生任何影响。
我理解 ECC RAM 的用途,但不是重点。我的意思是,我从未注意到宇宙射线位翻转导致的任何问题。即使在运行时间多年的个人计算/编译服务器上也是如此。并不是说位没有翻转,但它们肯定不重要。
根据我在这里和那里运行几千台机器的农场的经验,与 ECC 可纠正的问题相比,您更有可能遇到 Ext3 默默地呕吐的情况。
就我个人而言,我认为 ECC 有点货物崇拜,但只要成本溢价不是太高,它对大型强大的服务器来说是一项合理的保险政策。
答案3
对于“关键任务”应用,我会考虑使用 ECC 内存。如果服务器错误会导致您损失大量金钱(或造成人员伤亡或其他),请购买 ECC 内存。基本上,权衡一下 ECC 内存的成本与发生错误时可能造成的损失。
但无论你决定什么,我建议你运行MemTest86+一整夜(或足够长的时间对整个地址空间进行多次传递)。如果您可以提高温度(字面意思),这将让您了解当系统运行过热时您的内存将如何运行。
我曾遇到过全新的 RAM 在 MemTest 中出现错误的情况。我也遇到过“正常”RAM 随着时间的推移而出现错误的情况,MemTest 检测到了这些错误。这是一款很棒的工具,也是我在新系统上运行的第一批工具之一。
答案4
我们已经考虑将其用于关键系统。一个问题是,当用于运行内存完整性检查的程序本身容易出现内存错误时,您究竟如何在软件中进行错误检测以检查内存完整性?您基本上做不到,而且这会使故障模式分析/故障缓解变得困难,因此 ECC 是一种缓解机制。
这是一种如果出现问题你实际上可以责怪的情况宇宙射线;)