LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 6497|回复: 50

用preload大幅加速Gentoo

[复制链接]
发表于 2008-3-15 12:53:13 | 显示全部楼层 |阅读模式
之前常听人说unbuntu的速度有时还比gentoo快,不解。刚刚看了这篇文章
http://linux.slashdot.org/articl ... 028210&from=rss觉得preload
起了不少作用,很想试一试。不过,preload在Gentoo的portage中却没有,
万幸,在http://bugs.gentoo.org/show_bug.cgi?id=109016有这个ebuild. 版本低(0.2),
现在应该是0.4版本,不过这个很容易处理。下面是我的安装过程,有兴趣的同好可以
试一试。preload和prelink有点冲突,但并不严重。

安装过程:
(1)建立本地overlay,如果有就直接从第二步开始
   mkdir /usr/myoverlay
   在/etc/make.conf中,修改 PORTDIR_OVERLAY="/usr/portage/local/layman /usr/myoverlay"

(2)#mkdir -p /usr/myoverlay/sys-apps/preload
   #cd /usr/myoverlay/sys-apps/preload
   #下载http://bugs.gentoo.org/show_bug.cgi?id=109016中preload-0.2.ebuild、preload、preload.conf三个文件。
   #cp preload-0.2.ebuild preload-0.4.ebuild
   #ebuild preload-0.4.ebuild digest

(3)sudo emerge -av preload
   在编译时,第一次没有通过,第二次就通过了,不知道为什么。

(4)从http://bugs.gentoo.org/show_bug.cgi?id=109016下载init.d-preload至/etc/init.d/, chmod +x init.d-preload
  注:看了init.d-preload,有after xdm我不明白为什么,把它干掉了。因为我就没xdm,都用startx
  
(5)还有个小小的问题就是用手动在 /var/lib/lib下在建个目录
   #mkdir /var/lib/lib/preload
   #touch /var/lib/lib/preload/preload.state

(6)#/etc/init.d/init.d-preload start
#rc-update add init.d-preload default  大功告成!

另外,我把/etc/preload.conf的一句中加了/usr/bin形式如下:
exeprefix = !/usr/sbin;/usr/bin;!/usr/local/sbin;/usr;!/   更加详细的技术文档可以在网上搜索preload.pdf

使用preload之后,我感觉各种程序速度都有非常大的提高,甚至对我的桌面很细节的地方都有明显作用。
比如,我用fvwm+xcompmgr,当从thumbail还原窗口时,以前要停顿一秒,现在已经完全没这个现象了。
虽然kernel中有内存优化,但还是赶不上preload带来的效果突显。
发表于 2008-3-15 13:45:38 | 显示全部楼层
谢谢,正在找这个呢!
回复 支持 反对

使用道具 举报

发表于 2008-3-15 14:03:32 | 显示全部楼层
好教程!!!希望nainaide有时间能加到wiki里面去,谢谢!……呵呵
回复 支持 反对

使用道具 举报

发表于 2008-3-15 16:47:53 | 显示全部楼层
马上去试试...
回复 支持 反对

使用道具 举报

发表于 2008-3-15 16:56:05 | 显示全部楼层
好东东,偶已先到blog上了
回复 支持 反对

使用道具 举报

发表于 2008-3-15 20:31:45 | 显示全部楼层
立刻试试。~~~
回复 支持 反对

使用道具 举报

发表于 2008-3-15 23:33:57 | 显示全部楼层
看过介绍,有人说很好,有人说不好。。懒得去弄了。~~。
赞一下楼主分享精神:D
回复 支持 反对

使用道具 举报

发表于 2008-3-15 23:57:28 | 显示全部楼层
Post by nainaide;1826863

(2)#mkdir -P /usr/myoverlay/sys-apps/preload
   #cd /usr/myoverlay/sys-apps/preload
   #下载http://bugs.gentoo.org/show_bug.cgi?id=109016中preload-0.2.ebuild、preload、preload.conf三个文件。
   #cp preload-0.2.ebuild preload-0.4.ebuild
   #ebuild preload-0.4.ebuild digest

我晚上根据那个ebuild改了一下,加上了一些c上面explict if statement的补丁,晚上先试试如果不错,就放到gentoo-china里
(3)sudo emerge -av preload
   在编译时,第一次没有通过,第二次就通过了,不知道为什么。

因为 parallel make 的原因,用 -j1就可以了。
(4)从http://bugs.gentoo.org/show_bug.cgi?id=109016下载init.d-preload至/etc/init.d/, chmod +x init.d-preload
  注:看了init.d-preload,有after xdm我不明白为什么,把它干掉了。因为我就没xdm,都用startx

应该是为了在gdm等启动时处理preload
(5)还有个小小的问题就是用手动在 /var/lib/lib下在建个目录
   #mkdir /var/lib/lib/preload
   #touch /var/lib/lib/preload/preload.state

这是编译时的错误,正确位置应该是/var/lib/preload等,在ebuild中修正econf的选项就可以了。

试用一两天,OK就把ebuild加进去.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-16 00:14:13 | 显示全部楼层
acevery 真是个好同志!我不懂编程,经你一解释就明白了。
应该是为了在gdm等启动时处理preload
那你认为,如果我只用startx,还需要这个吗?
回复 支持 反对

使用道具 举报

发表于 2008-3-16 00:45:24 | 显示全部楼层
没有影响,你不用去掉它。
after只是说如果也启动xdm的话,那么先启动xdm然后再启动preload,只是个顺序问题,不是依赖。
我想应该是因为作者在preload.pdf中有提到说在gdm加载时处理preload是比较不错的选择,所以才有了after xdm在init中。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表