[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Fedora 10 - Boot Analysis


A brief Fedora 10 boot analysis.

Hardware: Asus EeePC 901 with a flash disk.

Time taken from entering the encrypted root disk password until the password can be entered (after pressing return in gdm). The 10 second wait in nash is ignored here (which really annoys me and should be configurable in /etc/sysconfig/mkinitrd).

Default Live CD Installation: 39s (bootchart http://www.harald-hoyer.de/files/f10boot/bootchart-nonread.png)

After installing readahead and running one collection boot process: 36s (bootchart http://www.harald-hoyer.de/files/f10boot/bootchart-readahead.png)

At this point, I recognized that all processes (NetworkManager and newaliases), which call a fsync(), let the boot process wait until all data is written to disk. This is the same effect as the firefox sqlite fsync bug http://shaver.off.net/diary/2008/05/25/fsyncers-and-curveballs/.

Mounting the root filessystem with relatime and turning off ordered data writing for the journal with

# tune2fs -o journal_data_writeback /dev/root

improved the situation (even though data might be old on the disk after a crash, but ext3 does not force the disk to empty the write cache anyway).

Turning off setroubleshoot and fixing https://bugzilla.redhat.com/show_bug.cgi?id=476023 and https://bugzilla.redhat.com/show_bug.cgi?id=476028: 32s (bootchart http://www.harald-hoyer.de/files/f10boot/bootchart-readahead-nosetrouble.png)

Turning off bootchart: 30s

So all in all we have nearly accomplished the 30 Second Startup Feature http://fedoraproject.org/wiki/Features/30SecondStartup.

To reach the 20 Second Startup Feature http://fedoraproject.org/wiki/Features/20SecondStartup, we really have to tackle setroubleshootd. Also we might start to move basic services to upstart and start them in parallel (bootchart with some services moved http://www.harald-hoyer.de/files/f10boot/bootchart-readahead-nosetrouble-upstart.png). Parallel booting will show now benefits with readahead and a small amount of active services, but the more services are turned on, the more you benefit with a parallel boot setup. Moving more basic modules to be compiled in the kernel also would gain some seconds. Speaking about modules, I ported Jakubs modprobe patch to the recent 3.6pre1 module-init-tools version. Though it nearly halves I/O, it would only safe us a fraction of a second here (not recognizable).

In the end, we also have to extend our view to things that happen after the user logs in (bootchart http://www.harald-hoyer.de/files/f10boot/bootchart-full.png) and do an extended analysis. Work is also in progress by Gnome developer Behdad Esfahbod http://mces.blogspot.com/2008/12/improving-login-time-part-3.html.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]