Skip to content

使用Powertop延长linux下笔记本电池续航时间

一月 21, 2011

一直有朋友和我抱怨linux比windows更“耗电”,比如,装双系统的笔记本,在同样的硬件条件下,windows下电池可以用3个小时,而linux下电池只能用不到两个小时。
确实,笼统的说,linux比windows更加耗电。我自己也发现我的笔记本在linux下有时候会比windows下面更热。然而,讽刺的是,和linux同样属于类UNIX系统,拥有类似的结构的Mac OSX(基于free/BSD)却有着超越windows的超长的电池续航时间。一般认为Mac OSX的“节能”成就是来自于其内核中苛刻的电源管理策略,其内核会扫描其进程并杀死(……)耗能的进程,那么反过来想的话,如果稍微改进linux的策略,是否也可以大幅提高其续航时间?

在此隆重介绍(咳)intel powertop,一个帮助你轻松调节计算机电源管理策略的软件!(广告么……)

呃,其实……这软件用起来并不轻松了……
对unixoid系统比较熟悉的童鞋们大概都用过top命令来查询系统中占用cpu时间和内存最多的程序。powertop也是取类似于top命令的意义,简单的讲,就是来查询系统中最为耗能的程序,从而为你提出建议,进行设置,减少或者避免使用这类耗能程序,从而达到节能——增加电池续航时间的目的。

这里有一个视频来讲述power leakage和powertop的原理,感兴趣的童鞋们可以看一下,然而实际上我自己(作为另一个geek)都不是很能理解这位来自intel的科学家的奇妙比喻。

安装
对于使用基于debian的发行版的用户,简单的apt-get install即可:
sudo apt-get install powertop
对于想使用源码编译的人们可以去google code,或者moblin(他们现在搬到moblin了)下载源代码

http://powertop.googlecode.com/svn/tags/
http://git.moblin.org/cgit.cgi/powertop/

目前最新的版本是1.13,ubuntu 10.04的源中是1.12,但是不管是多少,都够用了,如果你想要加入他们的开发,也可以尝试跟他们联系……
下载(解压)之后
make
sudo make install
即可。

使用
简单的运行即可,不过注意需要管理员权限:
sudo powertop

运行之后大概就会出一个类似这样的简单提示:

powertop

powertop

可能会有人看的一头雾水,所以简单解释一下:

Cn (平均驻留)
这里显示着你的cpu的运行状态,简单而言,你的处理器在开机的时候要么在干活(C0状态),要么在闲着,或者说睡眠(C1-C3状态)。实际上,现代的cpu的设计中,如果一段时间内并没有什么任务可以给cpu的话,cpu就会进入不同程度的睡眠状态中,闲的时间越长,睡眠程度就会越深,也会更加省电。比如我的intel core i5就有三级不同深度的睡眠状态(C1-C3)。在“正常人”的笔记本应用中(比如文字处理,看看电影,听听音乐),cpu应该有80%-90%以上的时候在睡眠的状态中。

P-状态(频率)
这里显示着你的CPU的频率状态,简单的说,就是分配给cpu的工作越艰巨,其工作频率会越高,从而也更加费电。可以看到在我的笔记本电脑的运行频率基本都在最低的1200 Mhz附近……(另外我这里正常的频率从2.4 GHz到 1199 GHz不等,之外还有使用turbo boost睿频技术进行超频的turbo mode)

电源使用
重要的部分,这里显示着根据acpi估算的电脑耗电量(watt)和估算的电池时间,自然是耗电量越低越好了……这里是14.7W,就当今的计算机来说应该说是一个比较低的数值了,然而在我的电脑上大概也只是用3个小时而已(我的电池是48瓦时)。

唤醒次数
这里显示着每秒钟把cpu从“梦中惊醒”的事件数量……以及唤醒cpu最多次数的程序。从节能的角度来讲,自然是让cpu做个好梦更好一些……所以分析这里出现的耗能最多的程序,并加以干涉就成为增加电池续航能力的最佳手段了

建议
程序针对本台计算机的数据进行分析给出的建议,一般都比较有用。比如在此该软件就建议允许让我笔记本电脑闲置的声卡进入休眠状态。一般来说,只要按照它给的建议做,就可以增加相当可观的电池使用时间。比windows续航时间长大概也没有太大的问题。

continue reading:

LessWatts.org

寻找更多的节能技巧

P.S. 惊奇的发现现在上wordpress(又)不用翻墙了……感叹一下GFW奇妙的策略……

Advertisements
One Comment leave one →
  1. 二月 2, 2011 6:46 下午

    1. 编译一个cpu-undervolted的内核: https://wiki.ubuntu.com/UndervoltingHowto
    2. 用命令指定GPU运行在低频率/电压的state

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: