当前位置:Linux教程 - Linux文化 - “无滴答”机制引入Linux主流 省电不是梦想

“无滴答”机制引入Linux主流 省电不是梦想


  如果不频频看表,也许你事情会做得更快。基本上,这就是程序设计师努力改善Linux操作系统运行效率的理论基础。

  这群程序设计师将赋予新版Linux一种“无滴答”空闲循环机制(tickless)的核心(kernel),舍弃传统的计算机计时(computer time-keeping),希望藉此让处理器保持在休眠、耗电低的状态。

  用电效率(power efficiency)是每一种操作系统都可能利用到的,但对Linux而言,改善效率有助于降低电费成本,进而加强这款开放源代码操作系统与 Windows竞争的实力,俾以更长的电池续航力抢进可携式计算机,以及通常必须每天24小时开机的服务器。

  无滴答核心不是唯一正在进行中的计划。英特尔5月间推出一种称为“PowerTop”的软件,标榜能更容易找出软件白白让计算机处在高度戒备状态、但其实无此必要的功能。

  Illuminata分析师Gordon Haff说:“这(节电计划)十分合理。全速的马力愈来愈没这个必要,特别是就笔记本电脑而言。而笔记本电脑愈来愈普及化。”

  Linux开发人员费时多年,总算把无滴答内核引进Linux主流应用。

  Linux领导人Linus Torvalds说:“Linux的改造工程大致已完成。”他指出,就更高端的软件来说,PowerTop可谓”无价之宝”。他说:“许多人和Linux经销商对此兴趣浓厚,所以,用户应用软件问题看来确实搞定了。”

  还有一些工作要做,但英特尔内核程序设计师Arjan van de Ven说,进度一直在掌握中。他说:“就我们实验室的成果而言,跑笔记型计算机时,现已提高效率的Linux在idle状态的耗电量,大约比三个月前的版本节省15%到25%。”

  降低芯片功率

  处理器必须消耗大量的电力,在许多情形下,比100瓦的灯泡还耗电。更糟的是,为了排热,散热风扇另需耗费更多的电,更别提资料中心空调设备吃的电。

  不过,近年来,芯片制造商让微处理器能减速到较低功率的状态,不必再时时以全速运转。随着芯片内部的频率减缓,电压降低,电力消耗量也就跟着下降。

  显然,当用户命令计算机进入待机(standby)模式时,处理器就能进入这类省电状态。不过,可做的还很多。因为频率达十亿赫兹 (gigahertz)的处理器每一周期持续的时间不到每秒十亿分之一,所以,即使是打字快手,在两次击键的当中,芯片其实可以多次进、出较低功率的状态。

  但操作系统内核--处理排程、与硬件沟通等基本任务的内核软件--未必善于避开繁忙的工作。一大原因是,软件通常会不必要地敦促内核进入戒备状态。另一原因是,内核本身也会平白耗电,比方说原本可打打瞌睡、让血压降下来的,却无聊地玩弄起手指来。

  英特尔的软件有助于找出第一类问题。无滴答内核则对解决第二种问题有帮助。

  无滴答趋势

  Torvalds 4月间发布的2.6.21版Linux内核,就包含无滴答选项。这种功能也已纳入Fedora 7,也就是Red Hat免费提供的玩家版Linux。

  van de Ven说:“就马力而言,这可以省很多的电。”

  他说,典型的英特尔笔记本电脑处理器在最节电的状态下,最高耗电量是1.2瓦。他说:“问题在于,假如你每隔百万分之一秒就苏醒,你几乎不能超越那段浅浅的节电模式。最终的效果是,无滴答让你进入最高节电模式,节省可观的电力,进而延长电池续航力。”

  无滴答内核仍在追踪时间,只是以不同的方式进行。一改以往频频检查待做的任务--就Linux的例子而言,每秒要检查1,000次,就内核频率每百万分之一秒滴答一次计算--新的作法让内核排定在未来的任务需要关注时,才进行硬件中断。

  就用电效率而论,无滴答内核还产生另一种间接的好处,就是更善加利用虚拟化技术。虚拟化技术让多重的操作系统同时在同一台计算机上运行。这么一来,就可用为数更少、使用效率更高的机器,取代众多闲闲没事干的机器。

  无滴答内核意味着,作为操作系统基础的虚拟化软件,不会因为不必要的中断,而造成不当的过度负荷。所以,理论上,这让管理员能更大胆整并服务器。

  van de Ven说:“如果你某台服务器有50个虚拟化的guests,而每个guest每秒定时器滴答1,000次,那就等于每秒滴答50个千滴答 (thousand ticks),但却什么工作也没做。使用无滴答技术,就可以从1,000降到(比方说)10。突然间,要运行50个guests,就变得轻松多了。”

  测试Linux硬件效能的Phoronix网站编辑Michael Larabel发现,内建Pentium M处理器的IBM ThinkPad R52,若运行Fedora 7,并采用无滴答内核,耗电量可从28瓦降到26瓦。

  一窥PowerTop奥秘

  但若更高端软件需要内核来排定发出经常性的苏醒呼叫,无滴答内核就不灵光了,这时需要PowerTop进场。

  使用PowerTop检测,已发现许多白白耗电的元凶。例如The Gvim文书处理器的闪烁光标,就会叫醒内核。Evolution电子邮件软件则每秒需要检查十次,看看有没有新任务需运行。GAIM (如今称为 Pidgin) 实时通讯软件每5秒自我检查一次,是否处于”空闲”的状态。

  除了解决以上问题之外,Linux内核本身仍有一些改良工程要做。例如,van de Ven指出,装置驱动程序--让内核与网络卡、键盘等硬件沟通的软件--需要翻新,才能处理节电问题。

  另一问题是开发电力相关政策管理软件,让管理员根据用户做的任务,来决定计算机应该有的行为。还有一项棘手问题,就是进一步改良笔记型计算机的suspend-resume功能,让笔电能更优雅地进入休眠状态。