<p>Installed kernel kernel-image-2.4.27-2-686-smp and rebooted with
bootchart, to see if this make a difference. The stats were saved as
-2005-08-01T18:16-bootchart.tgz. This boot took 1 minute 33 seconds.
-Again S20modutils is the slowest part of the boot, spending 23 seconds
-of it.
+<a href="2005-08-01T18:16-bootchart.png">2005-08-01T18:16-bootchart.tgz</a>.
+This boot took 1 minute 33 seconds. Again S20modutils is the slowest
+part of the boot, spending 23 seconds of it.
<p>Time to reorder the boot sequence according to dependencies. Document
the default boot order:
scripts.
<p>Booted first using -686-smp kernel. This took 1 minute 31 seconds
-(2005-08-01T18:31-bootchart.tgz). Still S20modutils spending most of
-the time.
+(<a href="2005-08-01T18:31-bootchart.png">2005-08-01T18:31-bootchart.tgz</a>).
+Still S20modutils spending most of the time.
-<p>Next booted with the -383 kernel. This took 46 seconds
-(2005-08-01T18:36-bootchart.tgz).
+<p><a href="2005-08-01T18:36-bootchart.png"><img src="2005-08-01T18:36-bootchart.png" width="40%" align="right"></a>Next
+booted with the -383 kernel. This took 46 seconds
+(<a href="2005-08-01T18:36-bootchart.png">2005-08-01T18:36-bootchart.tgz</a>).
<p>Someone claimed switching to dash instead of bash should speed up
the boot process. I decided to test it with the -386 kernel. The
boot. gdm came up with a login promt way before the machine was
finished booting. The network failed to start as the network modules
was not loaded. Running '/etc/init.d/discover start &&
-/etc/init.d/networking start' fixes this problem. The new boot
-2005-08-01T18:55-bootchart.tgz took 28 seconds.
+/etc/init.d/networking start' fixes this problem. The new boot took
+28 seconds
+(<a href="2005-08-01T18:55-bootchart.png">2005-08-01T18:55-bootchart.tgz</a>).
<p>Tried modifying the dependencies of discover, lvm and hotplug to
get the network drivers loaded properly. Succeeded and the new boot
the network started as it should.
<p>Tested with the -686-smp kernel as well. This new boot with the SMP
-kernel (2005-08-01T19:33-bootchart.tgz) took 58 seconds.
+kernel took 58 seconds
+(<a href="2005-08-01T19:33-bootchart.png">2005-08-01T19:33-bootchart.tgz</a>) .
<p>It was time to test the parallel booting. I ran 'cp
/usr/share/doc/insserv/examples/rc* /etc/init.d/', and rebooted with
the 386 kernel. This time to boot took 34 seconds
-(2005-08-01T19:38-bootchart.tgz). The gain was not very impressive,
-but it was slightly faster.
+(<a href="2005-08-01T19:38-bootchart.png">2005-08-01T19:38-bootchart.tgz</a>).
+The gain was not very impressive, but it was slightly faster.
<p>The SMP boot on the other hand surprised me quite a bit. The boot
-took 1 minute 9 seconds (2005-08-01T19:41-bootchart.tgz), and there is
-a large section of the boot time unaccounted for. From 10 to 20
-seconds into the boot, nothing is running but the CPU is used quite a
-bit. I was so surprised I had to try again to see if this happened
-every time. The new boot took the exact same amount of time
-(2005-08-01T19:49-bootchart.tgz), and had the same gap in the boot
-process where nothing is using an increasing amount of CPU. I suspect
-some kernel module must be spending the resources.
+took 1 minute 9 seconds
+(<a href="2005-08-01T19:41-bootchart.png">2005-08-01T19:41-bootchart.tgz</a>),
+and there is a large section of the boot time unaccounted for. From
+10 to 20 seconds into the boot, nothing is running but the CPU is used
+quite a bit. I was so surprised I had to try again to see if this
+happened every time. The new boot took the exact same amount of time
+(<a href="2005-08-01T19:49-bootchart.png">2005-08-01T19:49-bootchart.tgz</a>),
+and had the same gap in the boot process where nothing is using an
+increasing amount of CPU. I suspect some kernel module must be
+spending the resources.
<p>Trying to squease more parallelism in the boot process, I adjusted
the dependencies slightly to end up with this sequence:
</pre>
<p>The new boot with the SMP kernel still took 1 minute 9 seconds
-(2005-08-01T20:08-bootchart.tgz).
+(<a href="2005-08-01T20:08-bootchart.png">2005-08-01T20:08-bootchart.tgz</a>).
<p>Next, I tried to optimize the gdm startup, moving it ahead in the
rc2.d sequence. After some dependency adjustements, I ended up with
</pre>
<p>This new sequence was 1 second slower for the SMP kernel. It took
-1 minute 10 seconds (2005-08-01T20:35-bootchart.tgz). I suspect the
-issue here are IO contention, were several processes want to read from
-the disk at the same time.
+1 minute 10 seconds
+(<a href="2005-08-01T20:35-bootchart.png">2005-08-01T20:35-bootchart.tgz</a>).
+I suspect the issue here are IO contention, were several processes
+want to read from the disk at the same time.
<p>Next, I tested with the 386 kernel, and this boot took 34 seconds
-(2005-08-01T20:38-bootchart.tgz).
+(<a href="2005-08-01T20:38-bootchart.png">2005-08-01T20:38-bootchart.tgz</a>).
<h2>Testing 2.6 kernels</h2>
kernel-image-2.6.11-1-386 and kernel-image-2.6.11-1-686-smp. I was
asked how to configure irqbalance. I selected the default (no).
After installing these kernels, I booted the 386 kernel first. This
-boot took 36 seconds (2005-08-01T20:55-bootchart.tgz). This new boot
-included more stats in the graphs, and a few new processes (udevd,
-hald).
+boot took 36 seconds
+(<a href="2005-08-01T20:55-bootchart.png">2005-08-01T20:55-bootchart.tgz</a>).
+This new boot included more stats in the graphs, and a few new
+processes (udevd, hald).
<p>Next, I booted the 2.6 SMP kernel, and this boot took 1 minute 6
-seconds (2005-08-01T20:58-bootchart.tgz). Still almost double the
-time of the 2.4 kernel.
+seconds
+(<a href="2005-08-01T20:58-bootchart.png">2005-08-01T20:58-bootchart.tgz</a>).
+Still almost double the time of the 2.4 kernel.
<h2>Speedups</h2>
<p>I booted the 2.4 386 kernel, and this worked just fine. Now gdm
started imediately as the rc2.d scripts started, and the boot time is
-34 seconds (2005-08-01T21:09-bootchart.tgz). The total boot time to
-be the same as before, which is rather strange. Anyway, the change
-seem sensible enough, so I submitted it to BTS as
+34 seconds
+(<a href="2005-08-01T21:09-bootchart.png">2005-08-01T21:09-bootchart.tgz</a>).
+The total boot time to be the same as before, which is rather strange.
+Anyway, the change seem sensible enough, so I submitted it to BTS as
<a href="http://bugs.debian.org/326100">bug #326100</a>.
<p>Next, I realise that ntpdate and portmap do not really need to run
is time to try a new boot.
<p>The new boot worked fine, but it still took 34 seconds to boot with
-the 386 kernel (2005-08-01T21:21-bootchart.tgz).
+the 386 kernel
+(<a href="2005-08-01T21:21-bootchart.png">2005-08-01T21:21-bootchart.tgz</a>).
<p>Time to look at readahead? I tried with a trivial implementation,
using 'nice cat <files> &'. The files were all scripts in /etc/rcS.d/
/etc/rc2.d/ and all .o files under /lib/modules/. This had no effect
whatsoever. The boot still took 34 seconds
-(2005-08-01T21:45-bootchart.tgz).
+(<a href="2005-08-01T21:45-bootchart.png">2005-08-01T21:45-bootchart.tgz</a>).
<p>It takes almost 10 seconds to start gdm. Why is this? Will it
help to move to xdm or kdm? Testing xdm first, as it is supposed to
be the trivial implementation. Copied the dependencies from gdm, ran
insserv, and booted the 386 2.4 kernel. This boot took 36 seconds
-(2005-08-01T21:57-bootchart.tgz).
+(<a href="2005-08-01T21:57-bootchart.png">2005-08-01T21:57-bootchart.tgz</a>).
<p>Next try was to comment out all the entries in /etc/modules, as I
suspect the IDE bus probing is spending a considerable amount of time
and psmouse. If these modules are needed on the machine in question,
I expect hotplug and discover to take care of the loading. I must
have been right, as the boot took 29 seconds
-(2005-08-01T22:01-bootchart.tgz). Neither of the modules were loaded
-after boot, and the machine was still working and the mouse still
-responsive.
+(<a href="2005-08-01T22:01-bootchart.png">2005-08-01T22:01-bootchart.tgz</a>).
+Neither of the modules were loaded after boot, and the machine was
+still working and the mouse still responsive.
<p>I switched back to gdm, and rebooted with the 2.4 SMP kernel to see
how this change affected SMP. This boot took 60 seconds
-(2005-08-01T22:06-bootchart.tgz).
+(<a href="2005-08-01T22:06-bootchart.png">2005-08-01T22:06-bootchart.tgz</a>).
</body>
</html>