Some bootchart measurements from todays Squeeze

Petter Reinholdtsen pere at hungry.com
Wed Jul 22 11:55:46 UTC 2009


I just did a few benchmarks using Squeeze, and wanted to share the
numbers with you.  I first installed squeeze using an lenny debian
installation over PXE, next ran tasksel to install the KDE desktop and
the laptop task and finally installed bootchart to start on the
benchmark tests.  The measurement is from the kernel starts until the
bootchart script in rc2.d/ is executed.  Because of bug #491391, the
measurements with insserv are a bit skewed.  The benchmark was done on
a Dell Latitude D505.

The following list was generated using this command:

  for f in  *.svgz; do
     echo $(gunzip < $f | grep '>time:' |cut -d: -f2-|cut -c2-5) $f; done

  0:28 squeeze-desktop-unchanged
  0:30 squeeze-desktop-dash-sh
  0:25 squeeze-desktop-nodhcp
  0:25 squeeze-desktop-nodhcp-dash-sh
  1:38 squeeze-desktop-nodhcp-readaheadprofile
  0:22 squeeze-desktop-nodhcp-readahead
  0:21 squeeze-desktop-nodhcp-readahead-dash-sh
  0:17 squeeze-desktop-nodhcp-readahead-dash-sh-insserv
  0:17 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurmake
  0:17 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurstartpar
  0:16 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurmake-nohwclock
  0:20 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurmake-nohwclock-fixbc
  0:23 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-nohwclock-fixbc
  0:22 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-nohwclock-fixbc-onerl
  0:20 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurmake-nohwclock-fixbc-onerl
  0:28 squeeze-desktop-nodhcp-dash-sh-insserv-concurmake-nohwclock-fixbc-onerl

These numbers show that we can speed up the normal desktop boot in
Squeeze by 20%, from 25 to 20 seconds, by some small adjustments to
the default installation.  The boot chart data is available from
<URL: http://people.skolelinux.org/pere/debian/bootcharts-squeeze-20090722/ >
for those that want to have a closer look.

Here are the details for each benchmark.

  0:28 squeeze-desktop-unchanged

     Default installation, using DHCP to get the IP Address.

  0:30 squeeze-desktop-dash-sh
     
     Same as above, after installing dash and enabling dash as /bin/sh
     using 'dpkg-reconfigure dash'.  Now discovered that DHCP made the
     benchmark meaningless.

  0:25 squeeze-desktop-nodhcp

     Default installation again with bash as /bin/sh, now with static
     address in /etc/network/interfaces to avoid DHCP reply time to
     affect the boot time.

  0:25 squeeze-desktop-nodhcp-dash-sh

     Same as above, with dash as /bin/sh.  Surprised the boot time did
     not improve more.

  1:38 squeeze-desktop-nodhcp-readaheadprofile

     Disabled dash as /bin/sh and installed the readahead package, and
     booted using the 'profile' kernel option to register which files
     are used during boot.

  0:22 squeeze-desktop-nodhcp-readahead

     New boot with the profiled readahead, thus reducing the IO wait
     during boot.

  0:21 squeeze-desktop-nodhcp-readahead-dash-sh

     Same as above, and enabled dash as /bin/sh.

  0:17 squeeze-desktop-nodhcp-readahead-dash-sh-insserv

     Same as above, after installing insserv and enabling dependency
     based boot sequencing using 'dpkg-reconfigure insserv'.  Note
     that bootchart stops measuring a too bit early here.

  0:17 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurmake

     Same as above, after enabling concurrent boot using
     'echo CONCURRENCY=makefile >> /etc/default/rcS'.  Note that
     bootchart stops measuring a too bit early here.  I must admit I
     am a bit surprised the boot time did not change more.

  0:17 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurstartpar

     Same as above, after enabling concurrent boot using
     'echo CONCURRENCY=startpar >> /etc/default/rcS'.  The version of
     startpar in Squeeze have a few problems that affected the boot.
     This is fixed in the latest sysvinit package in unstable.  Note
     that bootchart stops measuring a too bit early here.

  0:16 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurmake-nohwclock

     Same as above, after removing the /etc/init.d/hwclock* scripts
     and rerunning insserv to get rid of the hwclock scripts.  These
     scripts are not needed when the hardware clock is in UTC.  Note
     that bootchart stops measuring a too bit early here.

  0:20 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurmake-nohwclock-fixbc

     Same as above, after applying the patch in #491391 to
     /etc/init.d/bootchart to get it to stop measuring later in the
     boot.

  0:23 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-nohwclock-fixbc

     Same as above, but disabled concurrent booting to see how much is
     lost by sequencial boot.

  0:22 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-nohwclock-fixbc-onerl

     Same as above, but moved all scripts for rcS.d/ to rc2.d/ to see
     how much could be gained by ordering everything in one sequence.

  0:20 squeeze-desktop-nodhcp-readahead-dash-sh-insserv-concurmake-nohwclock-fixbc-onerl

     Same as above, this time enabling makefile style concurrent
     booting.

  0:28 squeeze-desktop-nodhcp-dash-sh-insserv-concurmake-nohwclock-fixbc-onerl

     Same as above, after purging readahead to see how much that
     affects the boot time.  No idea why this is slower than the
     untouched desktop install. :/

Happy hacking,
-- 
Petter Reinholdtsen



More information about the initscripts-ng-devel mailing list