首页 新闻 体育 娱乐 游戏 邮箱 搜索 短信 聊天 天气 答疑 导航
新浪首页 > 科技时代 > 科学探索 > 科普杂志封面秀专题 > 正文

《科学美国人中文版》:不死机的电脑

http://www.sina.com.cn 2003年08月18日 14:22 《科学美国人中文版》

  过去20年来,电脑的数字计算能力提高了10000倍:1983年需要一年时间来完成的计算量,现在只要不到一个小时;那时台式电脑的处理能力,甚至远不及现在的掌上电脑。

  然而,这样的进步是有代价的。随着复杂性的增加,数字系统的运行变得经常受阻而不可靠了,电脑故障频仍,个人机经常死机,网站也经常上不去,原本为了扩大功能而进行的软件升级,效果可能会适得其反。这些问题除了给人们带来麻烦之外,还带来了昂贵的开
销:无论是个人还是公司,每年花在电脑维修与运行上的钱,都远高于软硬件的总成本。

  我们的团队,人员分别来自美国斯坦福大学和加州大学伯克利分校。我们采取这样一种新方针,把电脑故障和操作者的失误,全都视为不可改变的事实。因此,我们不再试图降低电脑停机的概率(这大概是不可能办到的),而是致力于设计一种能够从故障中迅速恢复的系统。我们称这种方法为“复原导向计算”(ROC)。

  我们决定把重点放在网站软件的改进上。由于消费者的需求和市场压力,这种高度动态的计算系统必须能够迅速发展和扩张,同时还必须服务于随时随地想上网的用户。想想Google搜索引擎的例子,它只用了几年时间,就从原本只包括数亿个英文网页,一下子扩张到30亿个网页,包括20多种语言、10多种格式,还外加图片。与此同时,Google的日访问量也从15万发展到1.5亿,它的系统比刚开始的时候还要忙碌1000倍。

  网站的软硬件需要经常升级,先前用来维持系统可靠性的许多技术显得过于昂贵。因此,我们预计网络软件能够为我们的想法提供一个很好的测试基地,并且可能成为其他计算系统的模型,包括台式电脑和笔记本电脑。如果ROC法则能够帮助电脑丛林中的这只大老虎,那么或许也能帮助小动物。

  我们首先考虑能从过去的错误中学到什么。这是一项早已证实是行之有效的工程策略,早在19世纪的铸铁桁架铁路桥时代就被采用过。我们特别想知道:网路系统为什么会出故障?该如何处理?当发现操作者失误是系统故障的主因时,我们多少有些惊讶。提升系统可靠性的传统方法,大多忽视了人为出错的存在,然而许多例子表明,由操作者失误造成的停机时间超过了其他任何因素。

  操作人员之所以会面临这样的困境,可能是电脑设计者和程序员为追求更好的性能而牺牲了操作的方便性。例如数据库软件通常就需要一位受过严格培训的全职管理员来管理。具有讽刺意味的是,随着软硬件价格的下跌,在运行复杂的网站时,操作人员的薪酬常常占了开支的大头。

  带着这些问题,我们的团队着手研究四项法则,用以指导构建“可靠复原导向计算”(ROC-solid)系统。第一是快速复原:故障随时都可能发生,因此工程师所设计的系统要能快速复原。第二,供货商应当提供更好的工具,以便操作者从多组件系统中准确找到故障来源。第三,程序设计师所建立的系统,应该支持“复原”功能,就像文字处理软件一样,这样操作者才能修改他们的误操作。最后,电脑科学家应当开发出在系统内置入试错程序的功能,用以评估系统的运行状况,并且帮助训练操作人员。我们打算把ROC软件免费提供给电脑科学社群内的成员使用。

  为了鼓励采纳我们的方法,我们还提倡开发能测试运算系统复原速度的软件,并广为发布。这种软件将能够测量电脑业在提升系统可靠性方面的进展,并且激励企业朝这个目标努力。

  快速复原

  电脑用户会经常重启他们的个人电脑,要么是因为已经死机,要么是运行不顺只好重来。重启对大型电脑来说同样管用,因为这样可以清空内存,并且修复许多所谓的“临时故障”——也就是说,这些问题是间歇出现的。

  遗憾的是,许多系统的重启要花很长时间,更糟糕的是,在这个过程中可能会丢失数据。因此我们认为,工程师应当设计能够快速重启的系统。如果深入了解计算机的内部,你就会发现它同时在运行好几个互相配合的软件。例如在线购物系统中,有的软件模块让消费者能够对现有商品进行查寻,有的允许消费者把看中的商品添加到“购物车”,还有的完成采购流程。另一层程序则控制编排所有这些功能,确保每一段程序代码在需要的时候运行,以实现在线购物网站的整体功能。

  通常,这些模块中只有一个出现故障,但如果用户重新开机,那所有运行中的软件都要停下来。要是每个独立的子组件都可以单独重启的话,可能就不必重启整台电脑了。而且如果某故障只影响了系统的少部分,那只要重启那些出现故障的独立组件,就能够解决问题。如果这样做不管用,就将较大一部分的子组件初始化,也许问题就解决了。难点在于如何单独启动某一个模块,而不会影响到其他的模块。这很像从一堆积木中抽出下面的一块,而又不让其他积木块倒塌,虽然是困难的技巧,但并非不可能实现。

  我们团队的两位斯坦福大学研究生candea和Cutler,已开始专心开发这种独立的重启技术,我们称之为“微重启”(micro-rebooting)。Cutler利用现成的个人电脑,加上便宜的业余无线电设备和试验软件,以低廉的花费组装出地面接收器,然后用这个地面站建立系统,捕捉来自卫星的信号。卫星地面站经常在使用过程中发生故障,如果操作人员不手动重启设备,卫星信号连同来自该轨道的所有数据将可能丢失。

  去年,Candea和Culter在他们的地面站软件上测试了微重启技术。他们与其他人一起对每个地面站软件模块做了更改,以便当某个子组件重新初始化时,其他模块不受影响。这些学生首先向操作人员咨询哪些是最经常出现的故障,以确定在发生特定问题时,必须重新初始化哪些子组件。对于许多经常复发的故障,他们成功地实现了复原过程的自动化,平均复原时间也从10分钟降到了2分钟,这样的速度已足以让一个信号中断的地面站重新获得卫星信号,并继续从最近的轨道收集数据。

  按照行话,电脑系统正常运行时间的百分数称为“可用性”(availa-bility),一般以有多少个9来作为衡量标准。例如,如果一个系统在99.999%的时间内能够正常运行,就称它的可用性为“五个9”,大致相当于运行25年有两小时的停机时间。然而,目前的主流计算系统即便受到良好的管理,可用性也只有99%到99.9%(即二到三个9)。如果可用性从两个9提高到五个9,每年可以减少将近90小时的停机时间,当服务中断会造成重大经济损失的时候,这个数字的意义就不难理解了[参看44页图文]。有两种方法可以提高可靠性:一是减少故障停机时间;二是出现停机后,想办法尽快复原。

  对于卫星地面站的操作人员而言,与其让两次故障之间的间隔延长5倍,还不如将系统的复原速度提高5倍。虽然这两种情况下对可用性的改善是一样的,但后者的可靠度(reliability)较高。我们认为,许多的计算系统都具有与地面卫星站类似的基本要求。

  尽管人工修改地面站软件很费功夫,但Candea与本文作者之一Armando Fox已着手研究,看是否能在J2EE(Java 2企业版)开发的应用网站上,以自动方式执行微重启技术(J2EE为流行的网路软件开发架构)。目前,修复网站的最常用方法就是重启整个系统,耗时从10秒(只重启应用程序)到1分钟(整个重新开机)不等。根据我们的初步结果,如果只微重启必要的子组件,所花时间不到1秒,用户看不到错误提示,只会感到有两、三秒的延迟,然后就一切正常了。

  查找故障

  修复已知的或可能的错误是一码事,但找出预料之外的错误,却是相关问题中更难的一项挑战。系统操作员可以通过工具的帮助,更快地追踪到问题所在。这就是我们的第二项ROC法则。

  在构建一个传统的高可靠性电脑系统时,程序设计师会从完整地描述所有软硬件组件开始,然后,精心构建错误分析树,描绘出系统发生故障的众多可能途径,以便防范于未然,或在故障发生时能够迅速纠正。与单一资源的系统相比,因特网服务是异质的,使用的组件来自多家不同的厂商。而且,随着服务的发展,这些模块还经常快速变化。故障发生的原因,经常是由于组件间出现意想不到的交互作用,而不是单个软件内存在缺陷。在发生这种动态故障时,恰好在使用网络服务的用户可能会接收到出错提示。

  为了帮助分析这些复杂的故障现象,斯坦福大学的研究生Kiciman和Fratkin,以及加州大学伯克利分校的陈彦仰(音),开发了基于ROC的电脑程序PinPoint,希望用它来寻找出现故障的组件。每当用户访问启动了PinPoint的网站时,该程序将对那些参与向用户传送服务的软件组件进行跟踪。当某个访问请求失败(如用户从网站上看到出错提示),Pin-Point就会将它记录下来。然后,监控应用软件采用标准的数据挖掘技术,分析比较在请求失败与请求成功的过程中,都有哪些软件是启动的。通过这种方法,PinPoint可以帮助找出最容易产生故障的可疑组件。用这种故障分析程序收集附加信息,最多使系统速度下降10%。每当软件包有所修改时,传统的解决方案都需要预先做详细的计划,而PinPoint程序对于软件组件的任何组合都适用。

  撤消错误

  也许提升系统可靠性的最大挑战,在于确保操作者的随机输入错误可被安全地更正,基于这一理由,我们的第三项ROC法则的重点放在“撤消”命令上。最早的文字处理软件并没有撤消功能,这使得人们无法使用。一次错误的操作,就足以毁掉整个文件。撤消功能可以让用户取消任何命令,解决了文字处理中的难题。

  现今的大型计算系统操作员却没有这项功能可以选用。在建立信息技术的基础时,没有人想到,能够撤消错误是一项重要的功能。这是因为实现撤消功能需要费很大的力气和占用巨大的存储空间,而且可能多少要影响系统的速度。

  为了验证这是一种更可取的方法,我们团队正在针对电子邮件系统中的信息存储空间,研究撤消功能。加州大学伯克利分校研究生Brown与本文作者之一Patterson,最近完成了带有操作员撤消功能的电子邮件系统原型,目前正在进行测试[参看47页框图]。

  假设一台传统的电了邮件存储服务器感染了病毒,系统操作员就必须对服务器进行杀毒,这是一项费力的工作。然而,我们的服务器能够自动记录服务器的所有行为,包括已删除的信息。如果系统被感染,操作人员可以采用撤消命令来“让时间倒流”,使系统回到病毒到达之前的状态,然后再下载能杀灭该病毒的软件。最后,操作员“复原操作”在病毒感染之后创建的所有电子邮件信息。新安装的反病毒软件将过滤所有随后的电子邮件。通过这种方法,操作员能够撤消误操作,同时不会丢失重要信息。另外,为了避免用户感到疑惑(他们可能会注意到某些邮件不见了),系统可以向用户发送通知,告知为了防止病毒扩散,该邮件已被删除。

  置入式测错

  ROC法则的最后一条,是将错误为我所用:我们提倡置入人为错误来定期测试系统。这样做可以帮助评测系统的复原功能,同时还可以得出让系统更健壮的新方法。这与某些工业上的做法类似,微处理器芯片的设计者经常增加线路,以简化芯片的测试过程。尽管这些附加部分增大了芯片的尺寸,而且在出厂之后就没用了,但制造商认为这些测试电路有存在的必要,因为它们既降低了成本又确保芯片能按设计要求工作。测试电路之所以有这个好处,原因之一就是它可以让设计者人为地“置入”错误,来验证芯片是否能够正确地检测到这些错误并且将它们修复。

  我们团队认为,电脑也应有类似测试电路的软件。例如,操作员如果采用选择性重启策略,当特定故障发生时,测试错误软件将帮助他决定重新初始化哪些软件组件。如果问题只影响一、两个组件,操作员只需重启这些组件。如果故障牵涉到相当多的组件,也许重启整个系统更加可靠。我们已经开始使用错误置入的方式,来查明用J2EE开发的因特网站点中的故障传播行为。

  该软件的另一版本Fig,可以让潜在用户了解电脑系统如何处理故障,这是一款能够激起人们购买欲的测试程序。由伯克利的研究生Broadwell、Sastry和Ttraupman开发的这一应用程序,可以测试程序正确处理标准C库中意外错误的能力(C库是几乎所有软件程序都要用到的一部分操作系统)。Fig是Fault Injection in glibc的缩写(glibc是无数程序员都要用到的标准C库的一个版本)。

  错误置入还允许电脑程序员进行困难的修复机理测试工作。Fig将让操作员能够着手在小型的试验系统上(尽管不是真实系统)诊断和修复故障。这一程序已经为一些程序员所采用,可以从我们的ROC网站上免费下载[参看参考文献1]。

  测试复原的标准程序

  从电脑业的发展史来看,我们深信对技术的提升进行测试并公开结果,有其重要性。电脑厂家在延搁了多年之后,终于采用标准的测试程序来比较产品性能,消费者可以清楚地知道每种产品的相对优点。技术落后的公司被迫在工程方面下更大的力气,之后再以标准的测评工具来测量他们的革新成果,然后这项测试数据,又可以带来后续的技术进步。

  Brown与同为伯克利分校研究生的Oppenheimer,连同Patterson,目前正在致力于研究复原时间的测评方式,希望在电脑系统的可靠性上也能出现类似的竞争。死机后能最快复原的产品,将拥有最大的销售优势。我们在构想一种包含常见故障的测试包,故障包括人为、软件和硬件造成的错误。未来的买主可以将这些故障置入到系统中,然后检测其复原的时间。值得注意的是,当前的电脑经营策略中经常引用的可用性(停机时间百分数),与复原时间相比,其实更难以测量。

  如果科学家和工程师共同努力,他们很可能在相对较短的时间内取得惊人的进展。在过去30年短暂而辉煌的历史中,电脑性能和性价比的飞速提升证实了这一点。但是,如果业界继续盲目地以当前的路子发展,到2023年,电脑计算能力还会再提高10000倍,但是可靠性并不会比现在强。如果有提升可靠性的软件工具和测试程序不断地激励我们,终有一天电脑会像我们所期望的那样稳定可靠。

  [柯江华/译曾少立/校]


评论】【通讯论坛】【推荐】【 】【打印】【关闭

     加快业务步伐,参加2003 IBM软件年会!
诺基亚,三星手机,笔记本全部499起限量甩卖中

  绝对大奖!订非常笑话短信,送数码摄像机!
  注册新浪9M全免费邮箱
  新概念英语 口语 出国考试 考研暑期限时优惠
  无数人梦寐以求的境界,亲密接触,激烈搏杀,包你爽上“天堂”

新 闻 查 询
关键词一
关键词二


search Esprit 皇马 小灵通
 

新浪精彩短信
两性学堂
性爱不仅是能力,更是心灵的释放和情感上的温存……
非常笑话
妻子:我患病卧床你却到外面跳舞!丈夫辩解道:…
图片
铃声
·[古巨基] 烟雨濛濛
·[张柏芝] 星语心愿
·[孙 楠] 你快回来
铃声搜索



企 业 服 务


招商引资频道全新改版
新浪企业邮箱值得信赖
肺癌治疗重大突破
如何收到很多国外订单


分 类 信 息
:北交大MBA直通车
   新浪分类全新改版
   夏季旅游-心的承诺
京车消费,此处为家!
 京腔京韵京商京息
分类信息刊登热线>>

 发表评论:  匿名发表  笔名:   密码:
每日2条,28元/月
原色地带--普通图片铃声,5元包月下载,每条仅0.1元 
炫彩地带--彩图和弦铃声,10元包月下载,每条仅0.1元
爆笑无比精彩无限,成人世界的快乐享受
好消息:8月11日-20日订阅非常笑话的用户有机会获得数码相机或摄像机
每日2条,30元/月



科技时代意见反馈留言板 电话:010-82628888-5488   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2003 SINA Inc. All Rights Reserved

版权所有 新浪网