[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