OpenSuse plans to massively improve boot time

suse-chameleon
Like other distributions, OpenSuse has a group of people working at a faster boot system. Atm there is no discussion about a new init system but about improvements on all fronts: kernel, init scripts, unnecessary system calls, etc.

The main aim of the Boot Time group is a bit flamboyant: to boot in 5 seconds from “grub screen until gdm loads”. At the moment this seems to be more of a motivation than a real aim. Also, there is not much code available yet. The team is focusing on discussion and data collection. You can find scripts for better bootchart diagnostics for example. The idea is to have a system where you don’t have to reboot but can restart your init system. I wonder why they do not simply test their scripts in a virtual machine?

However, noticeable in their attempt is that there is not so much talk about replacing init. According to the discussions parallelizing is not so helpful because all processes are waiting for I/O anyway – something I cannot confirm at all.
Also, they do not aim at taking over other init replacements – in a recent discussion Ubuntu’s Upstart was judged to be not “the right way”. Some Fedora members stated something similar, but I never heard reasons against Upstart, and must admit that I found the reasons and design ideas behind upstart pretty convincing.
Initng was also judged not to be very helpful because it would in the end start the same stuff with the same problems.

Out of these reasons and opinions the group seems to concentrate on improving current scripts and kernel mechanisms and also on choosing the right scripts and dropping everything which is not necessary.

The advantage with this attempt is that several of such improvements could be used by other distributions as well – improvements in X code or kernel code to make them faster would find its way upstream and from there into all other distributions.

In any case, this work shows me that Fedora is the last big distribution which haven’t really looked into this area. There were some initial thoughts about improving the boot time, but it was dropped in favour of other, more important features for Fedora 7. Let’s see if we see movement there when the Fedora 8 development cycle begins.

16 thoughts on “OpenSuse plans to massively improve boot time”

  1. mandriva spring has the fastest linux boot times of any recent distro I tried.

    After a new install, it booted in about 15 secs after grub and into a KDM logon screen ! A cold boot. PCLinuxOS has managed to achieve the same boot time. Of course, this only happens on reiserfs with a modern, fast hard disk.

    After adding a lot of software, the boot slowed down to 30 secs ! I don’t understand why this happens – the # of services activated at boot is the same.

  2. Yes, as I wrote Fedora is the last one still missing: Mandriva already has a fast booting system, Ubuntu laid the foundations with Upstart, and OpenSuse started now.

    Btw., why are you sure that you need ReiserFS for such an improvement? Where should be the ReiserFS specific feature?

    Anyway, about the slowdown: you could check if any of the services has a cache or similar which fills up over time. Also, bootchart can help you identify the processes slowing down significantly.

    But, as usual: a blog isn’t a good place for hunting down bugs and problems, please refer to Mandriva Forums 🙂

  3. I – as a Fedora user – am happy about Fedora being the latest. Every distro is doing its own thingy…what for?! Fedora better wait for one that really works great (or makes one itself if necessary…and only if they can make the best of all depending on the others good and bad points).
    Suse is going the right way (the way I would have expected from Fedora as with AIGLX for Xorg). Do it and do it for everyone.
    Anyways, I don’t think (and the same was stated in similar discussions on Fedora mailinglists) that speeding up the bootup is the most important todo. You’re not booting that often, are you? Say, isn’t there still stuff left that would improve working on your desktop much more?

  4. @red_alert: I agree with you about the first part: after all the distributions should share the same base system, and should not create one replacement each.
    However, Fedora is supposed to be the technology experimenting, new technology driving distribution – and from that point of view I would have loved to see Fedora taking the lead here, exploring new possibilities and afterwards promoting the best solution. But that didn’t happen.

    About the boot speed up itself: if you take a replacement like upstart there is much more possible than speeding up the boot process.
    Both cron and xinet are somehow related to starting services, but have to sit outside of init because init was not designed to do such stuff – also today several things happen after the boot, making the launch or stop of services necessary. It would make much sense to provide one single background system to provide all these functions.

    And yes, I do most like the Upstart attempt after all things I’ve read, because it is the only one which offers these possibilities. And I do hope that Ubuntu pushes Upstart into a well working state – and promotes it afterwards among the other distributions.

  5. Agree, Fedora should be the bleeding edge itself 🙂 Okay, to be fair, OpenSuse has the same target.
    I haven’t read much about any approach but I’m gonna try one or another as soon as F7 reaches GA. No fun trying know and figuring how it works again with F7.
    However, I will only be able to try the bootup stuff itself…nothing else you spoke about since I’ve got no idea about those things 😉

  6. One thing not mentioned is source code cleanup of some really basic applications….

    If you ever run strace on a linux applicaiton, you’ll be amazed at how much resource is spent on multiple searches for libraries and data as the test application loads. This in and of itself is a REAL performance killer….

    As for bootup time… We’ve got to begin a serious move to linuxBIOS. That would be a real performance enhancer…

    Also, a way to cache the “stuff” for boot time, LIKE WINDOWS XP DOES, to help cut boot time thrashing would help alot too.

    Cheers…

  7. One of the things is DHCP that waits for a long period of time, specially when the machine is not connected to the network. Making init scripts parallel will be a great idea.

  8. I never tested einit, and quite frankly, never read an article or anything about it. However it might be worth a look.

    @red_alert: One last thing about Fedora and solving the problem for everyone: AIGLX was developed by Red Hat/Fedora and was directly integrated into X.Org, so it was the purest form of solving a problem for everyone…

  9. Red Hat were actually the first to look into the whole “speed up boot” thing (see http://www.redhat.com/archives/fedora-devel-list/2004-November/msg00447.html ). Out of that came Bootchart (http://www.bootchart.org/ ) which finally allowed people to see which part of their boot was going slow (e.g. is your boot speed being restricted by I/O throughput or are you just waiting around doing sleeps and waiting for hardware to be initialised?). The Red Hat/Fedora situation is further complicated because they want to start X early in boot rather than risk using a framebuffer which adds further baggage…

  10. @Anon: You are right, bootchart comes from RH/Fedora, and is *the* tool to check for boot times.

    However, there is not much work done in this field at the moment, and that’s what is a bit disappointing.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.