CNET科技资讯网10月12日国际报道 你曾经纳闷你的电脑为何又当机了吗?罪魁祸首可能是你的内存。Google实地研究发现,内存出错的比率远高于之前的估计。
利用各地数据中心的数十万台电脑,Google得以收集关于主机实际运作情况的丰富资料。而该公司发现,内存出错的比率高得惊人。
由多伦多大学教授Bianca Schroeder与Google员工Eduardo Pinheiro和Wolf-Dietrich Weber共同执笔的研究报告指出:“我们发现不同DIMMs(双直列内存模组)的内存错误的发生率和出错的范围,都比之前的报告高许多。…内存错误并非罕见的情况。”
若某个内存模组曾经在最近一个月发生可复原性的错误,则发生无法复原的内存错误机率会跟着上升,有些情况会高达431%。
究竟有多少错误?平均来说,Google的服务器每年约有三分之一会发生可复原性的内存错误,而无法复原的错误发生率约为百分之一,而这种情况通常会造成当机。
一年四千次
听起来不像很严重的问题,但请注意:每一个内存模组,平均每年发生近4,000次可复原性错误。而不同于你的PC,Google的服务器使用错误矫正码(ECC),可准确地挑捡出那些错误。Envisioneering Group分析师Peter Glaskowsky表示,那代表在Google主机上的可复原性错误,在你的电脑上极可能是无法复原的错误。
该报告指出,ECC可侦测内存存储的错误,而Google也使用一些高端的错误校正技术,称为chipkill。该研究测量大多数Google的服务器,收集近两年半的数据,是第一个规模如此庞大的研究。
之前的研究,如300台电脑集群的资料,显示内存模组的可复原性错误率是每10亿小时200次到5,000次。但Google发现的比率是每10亿小时2.5万次至7.5万次。
Glaskowsky表示,虽然内存错误可造成严重问题,它们在PC的严重性远低于在服务器。那是因为服务器存储大量数据在内存,仅偶尔将数据写入相对安全的硬盘。而大多数的PC内存只存有应用软件,或操作系统文件,或是一些被浏览但并未编辑过的内容。
Glaskowsky说:“多数的消费者PC不会在内存内操作大量资料。许多情况只是用来浏览。”
但这项研究的结果,已促使Google重新思考其软件途径。Google Chrome程序设计师John Abd-El-Malek认为,该浏览器的数据库代码可分拆成独立于其他浏览器程序代码的程序,以减少损坏问题。
他写道:“即使当中只有小部分有害,散布到数百万使用者的电脑,即构成很大的损害。”他并未说服至少某些同事,但一位质疑者,Scott Hess回应:“我可以理解(这种作法)对于最小化SQLite存储在内存的数据,如何产生助益,不论SQLite存在何处。”
其他迷思的破解
该报告也挑战其他若干有关内存的既有观念:
·温度没有太大影响。
高温通常造成更高的错误率,但Google数据中心的温度差异,“对内存错误发生率,只有微小的影响。”然而,与温度息息相关的系统利用率,确实会造成更多错误。
·硬错误较软错误更普遍
硬错误,也就是无法修复的硬件瑕疵,比短暂的软错误更常见。作者写道,这项发现有趣的地方,“在于之前的研究一直假设软错误是DRAM错误的主要形式”。
·新世代的内存模组,如DDR2,不比旧型的产品差。
有人担心较新的内存模组,将电子元件紧密封装,会造成更高的错误率。作者写道:“事实上,用在三个最新平台的DIMM,可复原性错误率反而低于另两个较旧的平台,尽管其DIMM容量普遍较高。…这显示技术的改进能够跟上DIMM扩充的敌对趋势。”
研究人员得到这个结论的部分原因,是证据显示,从一个内存模组的某项错误,可以预知另一项错误的发生(不论可复原或不可复原)。更糟的是,错误率会随着时间上升:“我们看到时间对错误率的一种惊人的强烈、初期效应。实际运作的主机,在上线仅仅10到18个月后,便出现可复原错误率上升的老化现象。”
Google会替换经常出错的内存模组,但一般电脑使用者没有EEC为他们抓错。在古早的个人运算时代和1990年代,内存的不可靠程度,曾让大家必须进行可靠度测试。但那些测试可能要重出江湖了,或者内建到操作系统软件。Glaskowsky说:“如果错误率够高,可能会有人主张重新采行内存测试。”
用户评论