[Pkg-sysvinit-devel] Ideas for speeding up the Debian boot process

Petter Reinholdtsen pere at hungry.com
Fri Jan 20 16:36:56 UTC 2006

I've been talking about speeding up the boot process in Debian for
some time now, so here are some ideas to what to do and how to measure
the progress of such project.

 - Identify 5-10 potential "hotspots" in the boot, aka things that can
   be done to speed up the boot process.  For example preloading,
   prelinking, parallelization, getting rid of useless code, speeding
   up the slow programs and starting non-interactive parts later in
   the boot process are some random ideas.

 - Measure the boot time on the same hardware for a well known
   configuration in woody, sarge, etch and sid using bootchart or
   similar, and see how the situation have changed.  I suggest using
   the default installation of a desktop profile as the baseline.

 - Improve the boot time for sid compared to sarge, and gain at least
   30% shorter boot time.  The goal should be to cut the boot time by
   60%.  Based on the measurements given by bootchart graphs, start on
   the hotspot spending most of the time, and continue down the list
   until the goal is reached or time is running out.

 - Make sure to document and announce the results during the work, and
   report improvements as bug reports to BTS and talk to the package
   maintainers and upstream about the bottlenecks discovered.

I believe Ubuntu already speeded up X startup time and got those fixes
upstream.  These should be in unstable now.  I also believe hotplug is
gone and udev is changed to not spend so much time during the boot, as
well as some reorganization being done with sysvinit to speed up the
scripts at least for low-memory systems.  Based on this info I believe
30% speedup compared to sarge should be within reach, and suspect we
should be able to get as far as 60%.  The numbers are picked randomly
based on my gut feeling and might need some adjustment.  But going for
60 seconds to 30 seconds for the normal boot (from init start to the
login screen is ready to accept logins).

CC to a few people I know are interested in this topic, and moving
this discussion to the mailing list.

More information about the Pkg-sysvinit-devel mailing list