Wednesday, June 24, 2009

Speeding up boot on an upgraded system

So I have a laptop that I've been upgrading since Hardy (currently on Karmic Alpha) that I would like to boot faster. It has probably accumulated a lot of crufty daemons along the way that probably aren't being pre-loaded into memory. I picked up this tidbit from the fast boot expert. Add profile to your kernel command-line (at the grub prompt, press Esc e and then edit the line). This will update your system's readahead file list after a lot of disk churn. On my machine, it sped up boot by only about 5 seconds, but YMMV.

Also, if you have a machine or netbook with SSD (flash) disks, sreadahead might give you a boost. Again, apt-get install sreadahread is your friend
. sreadahead also schedules profiling of the system every month-or-so, so it keeps those boot-essential programs in the readahead cache always.

5 comments:

David said...

What about this vs. say, 'preload' (apt-get install preload) as far as performance is concerned?

David said...

Also, read a couple of interesting little tidbits on preload, prefectch & readahead. This might be worth a gander:

http://lists.alioth.debian.org/pipermail/initscripts-ng-devel/2006-April/000255.html

Colin Ian King said...

Beware that this performance improvement may degrade over time as you apply new package updates, so it's worth re-doing every so often.

I've also looked at using prelinking to speed up boot times: Here's my summary:
http://smackerelofopinion.blogspot.com/2009/06/does-prelinking-speed-up-boot-times.html

Amit said...

@David: I have to admit I haven't tried preload yet. A quick look at the tool seems to suggest that it might be an alternative to readahead/sreadahead.

@Colin: A very good point! If you have readahead, you need to probably do it every few months - perhaps after every dist-upgrade. But as Scott pointed out, sreadahead does this automatically.

Colin Ian King said...

Also, make sure you have plenty of memory on your system. On low-memory systems this technique sometimes fails to get through the initial boot. Larger memory systems 1GB+ more don't seen to have this problem.