+ -
当前位置:首页 → 问答吧 → Linux 性能优化无止境(续)

Linux 性能优化无止境(续)

时间:2009-02-03

来源:互联网

一夜没睡继续玩本。
1. 首先是编译了 xserver, 感觉X启动速度和运行速度提升明显,系统反应速度明显上升。这个也在意料之内,你top看看,90%的几率 XOrg 都是高居榜首,可以说是最常用的程序。

2. zypper up
发现 X11:Xorg 昨天晚上出了新包,把驱动又升级回去了,进不了X了。窝火。
又重头来一遍, libdrm, dri2proto, Mesa, xserver, xf86-video-intel.

3. 昨天晚上 kernel 出了新版 2.6.28.3
没什么好说的,打 Patch 编译。

4.之后,处于保护电池的原因 编译了 Thinkpad 最新 tp_smapi hdaps Thinkpad_ec 和 hdapsd dameon.

5. 磁盘震动保护可以用了,由于震动感应器输出两个轴的坐标变量,udev 虚拟成游戏手柄,就可以玩游戏了
效果如下:。
http://www.youtube.com/watch?v=2JE2Np45h0o
基本就是把本本当成乒乓球拍,屏幕里面托个球。

6. 发现 mplayer 看视频的时候,一晃动本本视频就滚到头了。料想是 那个震动感应虚拟成游戏手柄的问题,因为游戏手柄可以控制 mplayer, 于是重新编译 mplayer 禁了游戏手柄支持,这样玩其它游戏的时候可以折腾。

7. 由于 ./configure 和乱七八糟的依赖性问题,以上每个流程平均进行了3次。

8. 很幸福很满足

作者: Thruth   发布时间: 2009-02-03

我也想弄tp_smapi hdaps Thinkpad_ec 和 hdapsd dameon,但水平有限最后放弃了, tp_smapi居然报错是novell不支持,呵呵。
老大,做个教程如何

作者: LinuxIsHard   发布时间: 2009-02-03

引用:
3. 昨天晚上 kernel 出了新版 2.6.28.3
没什么好说的,打 Patch 编译。

4.之后,处于保护电池的原因 编译了 Thinkpad 最新 tp_smapi hdaps Thinkpad_ec 和 hdapsd dameon.
Thruth老大介意不介意把内核配置文件和相关的补丁发上来?谢谢了。

作者: Jeff-cao   发布时间: 2009-02-03

引用:
作者: LinuxIsHard
我也想弄tp_smapi hdaps Thinkpad_ec 和 hdapsd dameon,但水平有限最后放弃了, tp_smapi居然报错是novell不支持,呵呵。
老大,做个教程如何
支持老大出个ThinkPad内核编译教程。

作者: Jeff-cao   发布时间: 2009-02-03

嚴重懷疑Thruth是不是失戀了,拿SUSE發泄

作者: gogonkt   发布时间: 2009-02-03

引用:
作者: Jeff-cao
Thruth老大介意不介意把内核配置文件和相关的补丁发上来?谢谢了。
没问题。28config 拷贝到 2.6.28.x kernel 源码目录下为 .config
最好make xconfig 一下看看驱动都选上了没有 CPU 类型对不对
我是按照64位多核编译的,超线程支持可能没开也可能开了,我忘了
上传的附件
config.tar.bz2 (20.9 KB, 27 次查看)
patch_2.8.x.tar.bz2 (22.6 KB, 20 次查看)

作者: Thruth   发布时间: 2009-02-03

引用:
作者: Jeff-cao
支持老大出个ThinkPad内核编译教程。
还是像原来一样编,完了去下个源码编译好了。

作者: Thruth   发布时间: 2009-02-03

引用:
作者: gogonkt
嚴重懷疑Thruth是不是失戀了,拿SUSE發泄

作者: Thruth   发布时间: 2009-02-03

引用:
作者: Thruth
还是像原来一样编,完了去下个源码编译好了。
出个手把手教程吧,我们都是新手,编译内核......

作者: LinuxIsHard   发布时间: 2009-02-03

引用:
作者: LinuxIsHard
出个手把手教程吧,我们都是新手,编译内核......
http://cn.opensuse.org/OpenSUSE_内核编译教程_(kernel_2.6.x)

万变不离其宗。

作者: Thruth   发布时间: 2009-02-03

用hdaps 硬盘感应器,tuxracer 也可玩。很爽。相应模块编译在think wiki 上面些的很详尽。

作者: Thruth   发布时间: 2009-02-03

再折腾下去就变Gentoo了。

作者: yourfriend   发布时间: 2009-02-04

强人啊!!!

作者: zpcat   发布时间: 2009-02-04

专门针对Thinkpad的内核补丁,http://sourceforge.net/project/showf...roup_id=117042
Thruth大哥试试?

作者: Jeff-cao   发布时间: 2009-02-04

Release Name: 0.22

Notes:
This is a checkpoint release. It brings the thinkpad-acpi
backports in sync with what has been merged into kernel 2.6.29-rc2.

This is the last release supporting kernels 2.6.25 and 2.6.26.

The driver has been relocated in the upstream kernel source
tree, and that change is reflected on this release for
kernels 2.6.27 and 2.6.28.

Changes:
* ACPI: thinkpad-acpi: handle HKEY event 6030
* ACPI: thinkpad-acpi: bump up version to 0.22

And for 2.6.27+
* ACPI: thinkpad-acpi: move to drivers/platform/x86
* ACPI: thinkpad-acpi: update documents for the new location

好像已经集成到内核里去了。呵呵。

作者: Jeff-cao   发布时间: 2009-02-04

引用:
作者: yourfriend
再折腾下去就变Gentoo了。
優化最常用的部件以提高系統速度
而且還保留了原來的配置和包管理系統
這個在哪個發行版都是通用的

作者: gogonkt   发布时间: 2009-02-04

引用:
作者: Jeff-cao
Release Name: 0.22

Notes:
This is a checkpoint release. It brings the thinkpad-acpi
backports in sync with what has been merged into kernel 2.6.29-rc2.

This is the last release supporting kernels 2.6.25 and 2.6.26.

The driver has been relocated in the upstream kernel source
tree, and that change is reflected on this release for
kernels 2.6.27 and 2.6.28.

Changes:
* ACPI: thinkpad-acpi: handle HKEY event 6030
* ACPI: thinkpad-acpi: bump up version to 0.22

And for 2.6.27+
* ACPI: thinkpad-acpi: move to drivers/platform/x86
* ACPI: thinkpad-acpi: update documents for the new location

好像已经集成到内核里去了。呵呵。
HKEY event 6030 是什么?

作者: Thruth   发布时间: 2009-02-05

引用:
作者: Thruth
HKEY event 6030 是什么?
代码:
From: Henrique de Moraes Holschuh <[email protected]>

HKEY event 0x6030 is a helper for Lenovo's Advanced Thermal Management
Windows driver, which is, of course, completely undocumented.

Silence any warnings about it being an unknown alarm, and report it
unmodified for userspace.
引自:http://patchwork.kernel.org/patch/2874/

作者: Jeff-cao   发布时间: 2009-02-05

见这个帖子

http://www.linuxsir.org/bbs/thread338848.html

玩命编译

作者: trublemaker   发布时间: 2009-02-05

感谢楼上,又可以玩了

作者: Thruth   发布时间: 2009-02-09

现在内核已经是O3编译了,所有的其它软件CFLAGS都设成

-march=native -mtune=native -O3 -pipe -fomit-frame-pointer -mfpmath=sse,387 -mmmx -msse -msse2 -msse3 -mssse3

自我感觉良好,不过没有装性能测试的软件,不知道性能到底能差多少。

作者: trublemaker   发布时间: 2009-02-09

ThinkPad带震动传感,好牛啊!
唉,早知道就买ThinkPad得了!

作者: boqrviking   发布时间: 2009-02-10

引用:
作者: trublemaker
现在内核已经是O3编译了,所有的其它软件CFLAGS都设成

-march=native -mtune=native -O3 -pipe -fomit-frame-pointer -mfpmath=sse,387 -mmmx -msse -msse2 -msse3 -mssse3

自我感觉良好,不过没有装性能测试的软件,不知道性能到底能差多少。
这个全局的CFLAGS如何设置呢?

作者: seenxu   发布时间: 2009-02-10

一般
export CFLAGS="-march=native -mtune=native -O3 -pipe -fomit-frame-pointer -mfpmath=sse,387 -mmmx -msse -msse2 -msse3 -mssse3"
export CXXFLAGS=$CFLAGS

export LDFLAGS="-s -O3"
export LDFLAG=$LDFLAGS ,主要是不知道用哪个

export MAKEFLAGS="-j3" 我是双核的,一般设成N+1

一般的软件编译的时候就不用再设了,有些软件要configure的时候指定。

作者: trublemaker   发布时间: 2009-02-11

引用:
作者: trublemaker
一般
export CFLAGS="-march=native -mtune=native -O3 -pipe -fomit-frame-pointer -mfpmath=sse,387 -mmmx -msse -msse2 -msse3 -mssse3"
export CXXFLAGS=$CFLAGS

export LDFLAGS="-s -O3"
export LDFLAG=$LDFLAGS ,主要是不知道用哪个

export MAKEFLAGS="-j3" 我是双核的,一般设成N+1

一般的软件编译的时候就不用再设了,有些软件要configure的时候指定。
也就是说把他们都放在.bashrc里面就行了是吧?

另外,还有一个问题,一直不太清楚,系统自带的gcc是否已经含有了一个默认的CFLAGS? 假如有默认值,我export自己的CFLAGS是会覆盖这个默认值,还是在默认值基础上进行叠加?

作者: seenxu   发布时间: 2009-02-11

是.bashrc 还是 .bashprofile记不清了

好象默认是-O2 -g 吧

你export了当然就用你的了。

作者: trublemaker   发布时间: 2009-02-11

放在 /etc/profile.local 里面,重启以后用。

作者: Thruth   发布时间: 2009-02-12

引用:
作者: trublemaker
是.bashrc 还是 .bashprofile记不清了

好象默认是-O2 -g 吧

你export了当然就用你的了。
多谢。

我这里用ubuntu,发现如果放.bashrc里全局export,有些软件编译无法通过,还是什么时候需要特定优化,什么时候export吧。

作者: seenxu   发布时间: 2009-02-12

一般的软件O3都可以通过,通不过的unset CFLAGS或者设成O2就可以了啊。

现在内核都可以直接O3编译过了。

作者: trublemaker   发布时间: 2009-02-13

引用:
作者: trublemaker
一般的软件O3都可以通过,通不过的unset CFLAGS或者设成O2就可以了啊。

现在内核都可以直接O3编译过了。
恩,为了省心起见,什么时候用,什么时候source一下特定的脚本来export这些编译参数。说实话我用O3编译测试了几遍firefox 3.0.6感觉变化真的不大,所以,现在有些相信gentoo wiki上的话了,O3确实没啥性能提高,至少提高的不够明显。

作者: seenxu   发布时间: 2009-02-13

  啥子叫明显,比如说提高了10%,原来1S钟能完成的任务,0.9S完成,这个提高你能看出来么?

  还有,上网的时候,网速是瓶颈,这个你的应用程序再怎么快,还得从那里等着网络。

  在浮点数运算上,O3比O2快很多,当然,不是所有的程序都大量的用到浮点数运算,所以性能提高程度不同的应用程序不一样。试试这个例子,可以看出O2和O3在浮点数运算方面的差距。
  http://gcc.gnu.org/ml/gcc/2004-03/msg00634.html

作者: trublemaker   发布时间: 2009-02-14

引用:
作者: trublemaker
  啥子叫明显,比如说提高了10%,原来1S钟能完成的任务,0.9S完成,这个提高你能看出来么?

  还有,上网的时候,网速是瓶颈,这个你的应用程序再怎么快,还得从那里等着网络。


以firefox为例,做sunspider测试,O3,O2的测试比较成绩差不多是9700 vs 10000, 3%的提高,没超过10%我觉得应该就叫做不明显吧,而且,实际上平时去的网站只有google app几个使用javascript比较重的网站,这一点提高更加无法在大范围内得到体现,当然,除了javascript外的网页渲染速度正如你所说确实无法用数字衡量。可能,涉及到大量运算的软件O3编译确实效果比较好,只是实际生活中还没有使用到这类软件。

我还是坚持一个看法,只做简单的优化,如果确实需要提高“明显”,还是升级CPU来的省心。。。

作者: seenxu   发布时间: 2009-02-14

呵呵,就是个爱好,闲着没事折腾折腾,把CPU的性能发挥到最大化。

其实最应该优化的应该是glibc,这个是系统的基础,是基础中的基础,其次是内核

等我用http://www.phoronix-test-suite.com/?...

作者: trublemaker   发布时间: 2009-02-14

通过编译来优化速度其实没啥效果,还不如改一些配置提升的速度来得明显。

作者: shpchp   发布时间: 2009-02-14

引用:
作者: trublemaker
呵呵,就是个爱好,闲着没事折腾折腾,把CPU的性能发挥到最大化。

其实最应该优化的应该是glibc,这个是系统的基础,是基础中的基础,其次是内核

等我用http://www.phoronix-test-suite.com/?...

作者: seenxu   发布时间: 2009-02-15

引用:
作者: shpchp
通过编译来优化速度其实没啥效果,还不如改一些配置提升的速度来得明显。
现在使用BLFS,配置基本上都是最优的了。

作者: trublemaker   发布时间: 2009-02-15

很长时间没有上来了,路过,可敬可佩,很期待自己的水平能继续增长。

作者: fany2k3   发布时间: 2009-02-17

偶用的是T61,不知能否总结个针对T61的OpenSuSE的安装说明,期待。。

作者: fany2k3   发布时间: 2009-02-17