9
10
2011
7

e4rat:大幅提升Linux开机速度

警告:此软件仅限原生ext4文件系统使用。其他文件系统以及从低版本升级的ext4文件系统用户不要使用,否则将导致灾难性后果。 本着负责的态度,先Warning。 

e4rat是个好东西。其原理大致是(我猜的):通过磁盘整理有序化开机要加载的文件,并在系统启动阶段把数据预读到内存,充分使用内存和IO资源。

AUR上大家的溢美之词:

snack 发表于 Mon, 20 Jun 2011 23:03:28 +0000

Just one word: amazing! Can't believe such an improvement can be obtained so simply. Definitely one of the most notable utilities I've ever tried.

bwat47 发表于 Sat, 11 Jun 2011 00:55:03 +0000

Very impressive stuff! I have a laptop with a 5400rpm drive. This made like halved my boot time (gdm starts way faster, login is faster) all my apps like chrome/banshee/empathy start as fast as if they were cached in memory already :)

drexya 发表于 Sat, 04 Jun 2011 02:52:06 +0000

Wow, impressive results Oo.

可以看看官方给的效果图Amazing诶!

使用前

使用后

 

本文针对Arch系统,介绍一下使用方法。

1. 系统要求:

根文件系统是原生ext4,即一开始就格式化成ext4了,不是从ext2、ext3升级的。

内核支持audit。repo中的内核都支持,手动编译内核的需要注意一下。

2. 安装:

yaourt -S e4rat

或者自己从AUR下载脚本编译。

3. 收集信息:

grub中Linux启动项最后加上参数:

init=/sbin/e4rat-collect

启动后e4rat会记录120秒内系统打开的文件。可以在 /etc/e4rat.conf 修改等待时间(timeout)。

PS:据我观察,收集信息时系统启动会变得格外的慢,可能要一分钟以上。

4. 整理磁盘:

收集信息后,会生成 /var/lib/e4rat/startup.log 文件,里面记录的就是启动时打开的所有文件。然后要整理磁盘,该操作需要在单用户模式下执行:

sudo init 1

然后:

e4rat-realloc  /var/lib/e4rat/startup.log

5. 大功告成:

修改grub菜单文件,Linux启动项参数加入:

init=/sbin/e4rat-preload

重启后e4rat就开始工作了。

6. 其他:

a. 不要让e4rat预读太多东西,启动到桌面就足够了。如果预读太多东西(比如浏览器、文本编辑软件),反而会拖慢开机速度。

b. 以上都是针对Arch默认的init程序。如果你使用其他init机制,比如systemd,需要修改 /etc/e4rat.conf ,设置init参数:

init /bin/systemd

c. 该软件对SSD固态硬盘没什么作用。

Category: 计算机 | Tags: arch linux 优化 文件系统 e4rat ext4 | Read Count: 7652
Avatar_small
walfred 说:
2011年9月16日 23:31

变更文件系统,在linux下还么有试过,一直都是使用的ext3

Avatar_small
cuihao 说:
2011年9月17日 13:15

@walfred: ext2/3可以直接挂载为ext4使用,部分使用ext4的特性。
但这样转换的ext4不能使用该软件。
只有彻底纯正的ext4才能使用e4rat。

Avatar_small
刀尖红叶 说:
2012年2月13日 22:40

试试,看能不能20s启动完毕~

Avatar_small
自由建客 说:
2012年3月10日 00:02

在我的机器上只有一点点提升,本来三十余秒的启动过程也就节省了两秒左右!不知何故,看 e4rat-realloc 的结果好像有些不对,但看不懂,请问能否指点一下,这是不是真有问题?
1/1965 file(s) are not available.
6/1965 file(s) are presently not writable.
1958/1965 file(s) have no blocks.
Defrag mode: locality group

Avatar_small
cuihao 说:
2012年3月10日 17:17

@自由建客:
realloc的结果应该是正常的。
我觉得(只是我觉得),预读的东西太多也可能导致开机缓慢。
可以禁用一些不重要的自启动服务,再collect。
collect时,浏览器什么的都不要打开,预读那些东西也很费事。

Avatar_small
自由建客 说:
2012年7月13日 00:04

@cuihao: 之前的确实是没效果,内核不够新。
之前的 2.6.32 整理的时候一晃而过,其实就是没整理,所以效果。
现在的 3.2.0 整理的时候花了好几分钟,的确效果很好。

Avatar_small
zzfly 说:
2012年10月16日 16:44

在我去掉了大量服务后,使用e4rat后,启动时间反而延长了。bootchart看,不使用的时候大概是12s,使用后,大概是18s。e4rat占用了大概7s左右。有啥建议没?


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

| Theme: Aeros 2.0 by TheBuckmaker.com