Additions:
~- check [[̣̣̣̣Blog20100329BootChart2 Bootchart2]] now :-)
Additions:
~- http://blog.crozat.net/2008/09/improving-boot-time-on-general-linux.html [en] adaptation for Mandriva Linux 2009.0
Additions:
~~- try to comment out the line in /etc/modprobe.preload.d/floppy
~~~- to have 3 s less when nothing seems to happen
~~~- anyway, who still has a floppy disk nowadays !? I do not remember having one since at least 5 years...
~~~- to have 3 s less when nothing seems to happen
~~~- anyway, who still has a floppy disk nowadays !? I do not remember having one since at least 5 years...
Deletions:
Additions:
~- identify why there are at least 25 seconds "lost" at boot, what is making start_udev then udevsettle stall ? **done** (in latest kernel)
Booting in 5 seconds :
~- https://linuxfr.org/~patrick_g/27236.html [fr]
~- http://www.fenrus.org/plumbers_fastboot.ppt [en] presentation and analysis of the bootchart drawings, Don't settle for "make boot faster", Only "make boot fast" is acceptable
~- **before optimisation**, approximate boot time and events, from my wristwatch ([[http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080821_bootchart.svgz image in SVG]]) :
Booting in 5 seconds :
~- https://linuxfr.org/~patrick_g/27236.html [fr]
~- http://www.fenrus.org/plumbers_fastboot.ppt [en] presentation and analysis of the bootchart drawings, Don't settle for "make boot faster", Only "make boot fast" is acceptable
~- **before optimisation**, approximate boot time and events, from my wristwatch ([[http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080821_bootchart.svgz image in SVG]]) :
Deletions:
~- before optimisation, approximate boot time and events, from my wristwatch ([[http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080821_bootchart.svgz image in SVG]]) :
Additions:
~~- try to comment out the line in /etc/modprobe.preload.d/floppy to have 3 s less when nothing seems to happen (anyway, who still has a floppy disk nowadays !? I do not remember having one since at least 5 years...
Additions:
~~- ~45 s to boot instead of 75 s o_O
Deletions:
Additions:
~- before optimisation, approximate boot time and events, from my wristwatch ([[http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080821_bootchart.svgz image in SVG]]) :
~- todo : patch bootchart to go till gnome splashscreen for further optimization ""<a href="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.png"><img class="right" style="width:113px;height:289px" alt="bootchart on nc6400 Mandriva Cooker 2009.0" title="bootchart on nc6400 Mandriva Cooker 2009.0" src="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.png" /></a>""
~- **latest results are better now, seems 60 seconds have been won** ([[http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.svgz image in SVG]]) :
~~- ~45 s to boot instead of 105 s o_O
~- todo : patch bootchart to go till gnome splashscreen for further optimization ""<a href="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.png"><img class="right" style="width:113px;height:289px" alt="bootchart on nc6400 Mandriva Cooker 2009.0" title="bootchart on nc6400 Mandriva Cooker 2009.0" src="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.png" /></a>""
~- **latest results are better now, seems 60 seconds have been won** ([[http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.svgz image in SVG]]) :
~~- ~45 s to boot instead of 105 s o_O
Deletions:
~- todo : patch bootchart to go till gnome splashscreen for further optimization
~- latest results are better now, seems 60 seconds have been won : ~45 s to boot instead of 105 s o_O ""<a href="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.png"><img class="right" style="width:113px;height:289px" alt="bootchart on nc6400 Mandriva Cooker 2009.0" title="bootchart on nc6400 Mandriva Cooker 2009.0" src="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.png" /></a>""
Revision [2200]
Edited on 2008-09-22 00:40:56 by BenoitAudouard [add latest results with 2.6.27-desktop-0.rc6.5.1mnb]Additions:
~- latest results are better now, seems 60 seconds have been won : ~45 s to boot instead of 105 s o_O ""<a href="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.png"><img class="right" style="width:113px;height:289px" alt="bootchart on nc6400 Mandriva Cooker 2009.0" title="bootchart on nc6400 Mandriva Cooker 2009.0" src="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080921_bootchart.png" /></a>""
Additions:
===The results===""<a href="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080821_bootchart.png"><img class="right" style="width:183px;height:236px" alt="bootchart on nc6400 Mandriva Cooker 2009.0" title="bootchart on nc6400 Mandriva Cooker 2009.0" src="http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080821_bootchart.png" /></a>""
See other images at http://download.tuxfamily.org/cooker/images/bootchart/ (both SVG and PNG)
~- approximate boot time and events, from my wristwatch ([[http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080821_bootchart.svgz image in SVG]]) :
See other images at http://download.tuxfamily.org/cooker/images/bootchart/ (both SVG and PNG)
~- approximate boot time and events, from my wristwatch ([[http://download.tuxfamily.org/cooker/images/bootchart/nc6400_20080821_bootchart.svgz image in SVG]]) :
Deletions:
~- approximate boot time and events, from my wristwatch ([[http://download.tuxfamily.org/cooker/images/bootchart.svgz image in SVG]]) :
Additions:
~- bootchart then bootchart -f svg to generate both bootchart.png + bootchart.svgz (smaller)
Additions:
~- identifiy why there are at least 25 seconds "lost" at boot, what is making start_udev then udevsettle stall ?
Adaptation for GNOME :
~- http://www.gnome.org/~lcolitti/gnome-startup/analysis/
~- (shows that GNOME is mostly I/O bound, does not help that much to identify which process are in a timeout loop, waiting)
Adaptation for GNOME :
~- http://www.gnome.org/~lcolitti/gnome-startup/analysis/
~- (shows that GNOME is mostly I/O bound, does not help that much to identify which process are in a timeout loop, waiting)
Additions:
On my HP/Compaq nc6400 laptop with cooker 2009.0 i586
~- todo : patch bootchart to go till gnome splashscreen for further optimization
~- todo : patch bootchart to go till gnome splashscreen for further optimization
Additions:
~- approximate boot time and events, from my wristwatch ([[http://download.tuxfamily.org/cooker/images/bootchart.svgz image in SVG]]) :
~~- at 57 seconds, begin of rc (launching services and some remaining modprobes like alsa ?)
~- "seems" that 25 seconds are wasted ? is there a timeout somewhere ?
~~- at 57 seconds, begin of rc (launching services and some remaining modprobes like alsa ?)
~- "seems" that 25 seconds are wasted ? is there a timeout somewhere ?
Deletions:
~~- at 57 seconds, begin of rc
Additions:
~- hmmm I may have to patch bootchart to continue till gnome is loaded (only 70 seconds in the generated graphics)
~~- first 20 seconds for initial modprobes, ending with sane-find-scanner, then no CPU at all (waiting for timeout ?)
~~- at 47 seconds, end of start_udev then udevsettle, some CPU with following launches
~~- at 47 seconds rc.modules + late modprobe
~~- at 57 seconds, begin of rc
~~- at 70 seconds end of boot
~~- first 20 seconds for initial modprobes, ending with sane-find-scanner, then no CPU at all (waiting for timeout ?)
~~- at 47 seconds, end of start_udev then udevsettle, some CPU with following launches
~~- at 47 seconds rc.modules + late modprobe
~~- at 57 seconds, begin of rc
~~- at 70 seconds end of boot
Additions:
===The results===""<a href="http://download.tuxfamily.org/cooker/images/bootchart.png"><img class="right" style="width:183px;height:236px" alt="bootchart on nc6400 Mandriva Cooker 2009.0" title="bootchart on nc6400 Mandriva Cooker 2009.0" src="http://download.tuxfamily.org/cooker/images/bootchart.png" /></a>""
Deletions:
Additions:
~- approximate boot time and events :
~~- 1mn10 : end of progress bar
~~- 1mn20 : graphical blue blank screen, with mouse pointer
~~- 2mn : gnome splash screen appears
~~- 2mn20 splashscreen disappears, desktop available
As told in ##/usr/share/doc/bootchart/INSTALL## and ##/usr/share/doc/bootchart/README## here the few steps to achieve
~~- 1mn10 : end of progress bar
~~- 1mn20 : graphical blue blank screen, with mouse pointer
~~- 2mn : gnome splash screen appears
~~- 2mn20 splashscreen disappears, desktop available
As told in ##/usr/share/doc/bootchart/INSTALL## and ##/usr/share/doc/bootchart/README## here the few steps to achieve
Deletions:
Additions:
##title **Bootchart logging**
initrd (hd0,4)/boot/initrd.img##
initrd (hd0,4)/boot/initrd.img##
Deletions:
initrd (hd0,4)/boot/initrd.img%%
Additions:
~-urpmi bootchart-logger bootchart bootchart-javadoc # installs bootchart-logger-0.9-5mdv2009.0 bootchart-0.9-5mdv2009.0 bootchart-javadoc-0.9-5mdv2009.0
As told in ##/usr/share/doc/bootchart/INSTALL## and ##/usr/share/doc/bootchart/README##
~- grub modification, just copy/paste the linux entry in ##/boot/grub/menu.lst## adding an appropriate title and ##init=/sbin/bootchartd##
%%title **Bootchart logging**
kernel (hd0,4)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=c3fd9f4d-55c6-4f2e-9fe7-e2dcb9814d9e resume=/dev/sda7 splash=silent vga=791 **init=/sbin/bootchartd**
initrd (hd0,4)/boot/initrd.img%%
~- The boot process is modified to start the boot logger (/sbin/bootchartd) instead of /sbin/init. The boot logger will run in background and collect
information from the proc file system (/proc/[PID]/stat, /proc/stat and /proc/diskstats). The statistics are logged to a virtual memory file system
(tmpfs). Once the boot process completes (denoted by the existence of specific processes), the log files are packaged to /var/log/bootchart.tgz.
~- check /var/log/bootchart.tgz is available after booting, then type bootchart (which is a simple script calling the java -jar bootchart.jar with the appropriate java machine installed,
~~- AFAIC : java-1.6.0-openjdk-1.6.0.0-0.16.b11.4mdv2009.0 java-1.6.0-openjdk-devel-1.6.0.0-0.16.b11.4mdv2009.0 java-1.6.0-sun-1.6.0.06-2mdv2009.0 java-1.6.0-sun-alsa-1.6.0.06-2mdv2009.0 java-1.6.0-sun-fonts-1.6.0.06-2mdv2009.0 java-1.6.0-sun-jdbc-1.6.0.06-2mdv2009.0 java-1.6.0-sun-plugin-1.6.0.06-2mdv2009.0
As told in ##/usr/share/doc/bootchart/INSTALL## and ##/usr/share/doc/bootchart/README##
~- grub modification, just copy/paste the linux entry in ##/boot/grub/menu.lst## adding an appropriate title and ##init=/sbin/bootchartd##
%%title **Bootchart logging**
kernel (hd0,4)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=c3fd9f4d-55c6-4f2e-9fe7-e2dcb9814d9e resume=/dev/sda7 splash=silent vga=791 **init=/sbin/bootchartd**
initrd (hd0,4)/boot/initrd.img%%
~- The boot process is modified to start the boot logger (/sbin/bootchartd) instead of /sbin/init. The boot logger will run in background and collect
information from the proc file system (/proc/[PID]/stat, /proc/stat and /proc/diskstats). The statistics are logged to a virtual memory file system
(tmpfs). Once the boot process completes (denoted by the existence of specific processes), the log files are packaged to /var/log/bootchart.tgz.
~- check /var/log/bootchart.tgz is available after booting, then type bootchart (which is a simple script calling the java -jar bootchart.jar with the appropriate java machine installed,
~~- AFAIC : java-1.6.0-openjdk-1.6.0.0-0.16.b11.4mdv2009.0 java-1.6.0-openjdk-devel-1.6.0.0-0.16.b11.4mdv2009.0 java-1.6.0-sun-1.6.0.06-2mdv2009.0 java-1.6.0-sun-alsa-1.6.0.06-2mdv2009.0 java-1.6.0-sun-fonts-1.6.0.06-2mdv2009.0 java-1.6.0-sun-jdbc-1.6.0.06-2mdv2009.0 java-1.6.0-sun-plugin-1.6.0.06-2mdv2009.0