Slashdot Log In
How To Speed Up Linux Booting
Posted by
kdawson
on Sat Mar 24, 2007 12:36 PM
from the up-and-running dept.
from the up-and-running dept.
An anonymous reader writes "A common complaint about Linux is the amount of time the operating system takes to start. Like Linux itself, there are plenty of options and lots of flexibility for boot-time optimization. From dependency-based solutions like initng to event-based solutions like upstart, there's an optimization solution that should fit your needs. Using the bootchart package, you can dig in further to understand where your system is spending its boot time to optimize even more."
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
-1st post (Score:5, Funny)
Ha!
Re:-1st post (Score:4, Funny)
Parent
Re:-1st post (Score:5, Insightful)
I don't need to download a page every time I start my browser, render it and slow it down, then replace it immediately with another page I want to visit. That's another part of system optimisation, and it avoids unnecessary strain on slashdot/mozilla/other servers, too.
Parent
Boot time not an issue. (Score:4, Interesting)
Re:Boot time not an issue. (Score:5, Insightful)
To be fair, my Windows box boots pretty quick; I think the time between power on and desktop is somewhere in the region of 50 seconds. The method of loading the core services - desktop - additional services at least gives the impression of speed, even through the disk continues to thrash for another 45 seconds as applications load in the background.
* Jokes about Windows never being usable even after booting can be inserted here as required!
Parent
Re:Boot time not an issue. (Score:5, Interesting)
You could make linux start in the same way, modify the init scripts to start XDM first, and everything else later, in which case you'd have the same appearance of fast booting.
Parent
Re:Boot time not an issue. (Score:4, Interesting)
The only reason you can say that 50 seconds seems pretty quick is that most of us remember when several minutes was he norm. The interesting thing is that as feature creep in all operating systems has continued (you can't have glass windows in one OS without users of all other OSs feel the "need" for it too after all) has kept boot time longer than we would like, even though hardware speeds have continued to increase by orders of magnitude.
Can you imagine how long an XP boot (or Ubuntu for that mater) would take on an old 386 system with a sluggish hard drive and not a lot of memory (if such a thing were even possible)? Hours I would guess, and you would shake your head wondering if your hard drives MTBF would get you through the process.
In the future will it take four or eight processors in a box to keep the lag down to 50 seconds? Should we take any delight in the fact that Windows boot will be sped up again only by special code to pre-load parts of the OS into flash ram before shutdown? I don't. I'd much prefer to see an almost-instant-on OS that didn't depend on special hardware tricks but rather because the architects actually designed the bloody thing for a change. Aint gonna happen though. If there are still any really smart people working at MS I'm sure they are working on the next great Google/Sony/IBM/Oracle killer or something. Faster boots would benefit ALL Windows users, not just MS only shops. We can't have that now can we?
It's a good sign when an OS rarely needs to be booted, which is at least the case with Linux and OS X (can't speak for Vista). I leave my machines running all the time, even my desktop has laptop innards, so they go into a low power state when not used for a while. What I do to clean up any cruft that has built p running poorly behaved applications is to reboot when I am done using the computer for a while. That way I don't have to sit around and wait for the process to complete. the machine reboots, sits there for thirty minutes and then goes to sleep. It's ready to go and "freshly" booted the next time I need it. Of course if you like to keep a lot of memory hogs autoloaded and running in the background this system may not work so well.
Parent
Re: (Score:3, Insightful)
when we have that a reboot will be more like compiling the current state.
as long as you don't change any configration no reboot should be necessary at all.
just suspend and restore all the time.
I have a computer that boots in about 5 sec (Score:3, Funny)
And some of us remember when it was about 5 seconds.
Of course, that was a TRS-80. :)
Boot to desktop (Score:3, Insightful)
The trick is just right there. It's the time until desktop shows up. Not until the system is usable.
Windows XP (and I think Vista too, but the friend that was supposed to gime her unused Vista CD hasn't yet) tries to show desktop as soon as possible, even if all services didn't finish booting.
My machine isn't brand new. I mean at all. It's an old Pentium III Tualatin with 440BX chipset and 1GB SDR 133.
On linux (opens
Re:Boot time not an issue. (Score:4, Interesting)
Yes, but rebooting should not be the option people are using. Go the power management route and do things like enter low power mode, or do a full suspend to disk (hibernate).
Rebooting really should not the solution to using less power, especially with the Power management concepts can be automated based on idle usage, turn themselves back on to run tasks and back off.
I got into this habit from carrying a couple of laptops full time, and it is something I carry over to my personal desktops as well.
People need to just exchange Off with Hibernate in their minds. Even with Windows, which doesn't have bad boot times, it is just easier to tell the system your power button is the hibernate button, and hit it and go on my way. Then turning on the computer is a few seconds and I don't have to worry about what I left running ever. Especially with someone like me that has tons of crap running all the time, including several VMs which I don't have to individually suspend to disk if I were to shut down the computer everytime.
And thank god OSX finally added a true hibernate in 10.4 on their notebooks, cause not having it about drove me flipping insane.
So now that 99% of all OSes have ok power management, rebooting should be a thing of core updates only.
PS
The boot times on Linux are really not bad in a default install on most distributions. And people shouldn't take this article as evidence that Linux is slow or sucks at boot times.
However, I do applaud the efforts to improve boot times, and wish there was a bit more generic optimization like people from the Windows world are use to.
Vista for example monitors the last 5 boot times, and will continually adjust disk layout and process order, etc to continue to speed up boot times. There is no reason all OSes couldn't add a generic form of optimization like this.
Parent
Re: (Score:3, Insightful)
Re:Boot time not an issue. (Score:5, Interesting)
Laptop, you say? Hibernate, don't boot!
What's more interesting is to reduce the login time and start-up time for applications. prelink is your best friend here. Make sure that all your apps are compiled for position independent code (PIC), and prelink them. Lots of time saved, at the expense of larger binaries.
Regards,
--
*Art
Parent
Re:Boot time not an issue. (Score:5, Interesting)
Of course, all the apps are still there so that helps. But it's not nearly as efficient as, say, a Mac where you can close the lid any time, open it back up again and have it right there in 2 seconds.
Parent
Re:Boot time not an issue. (Score:5, Informative)
Parent
Re: (Score:3, Informative)
Re: (Score:3, Interesting)
hibernate has to restore the entire state of RAM. It doesn't matter if you had 200MB or a 3 GB of applications, it's all gotta come back in before you start running the kernel.
Actually, it is only the application areas that has to come in... disk cache on so on doesn't. I sometimes wonder if there should be a "shutdown" signal in the XSMP setup that would enable applications to dump cached data that would probably be stale anyhow when the computer is brought back on line, such the browsing cache.
Re: (Score:2)
Re: (Score:3, Informative)
And just for the record. The point of the GP was that Linux machines tend to have much longer times before a boot is necessary. It wasn't bashing your precious Windows, it was stating a *generalized* fact. I can leave my Fedora server running f
Fixed in Gentoo (Score:5, Informative)
rc_parallel_startup="yes"
(actually that should be in caps, but the lameness filter doesn't like it)
Customize the Bootscript, Trim the Fat (Score:5, Interesting)
Most bootscripts are very generic in that they will try to load all sorts of RAID drivers, various services that are not needed, special fonts, etc.. I've gone in on my computers and wrote a very simple, quick, and to-the-point bootscript (easy to do with a little BASH knowledge), and my system boots up remarkedly fast. Granted, my bootscript isn't very portable, but one of the benefits of Linux is the ability to customize it.
Another trick is to prelink files and let KDE (if that is what you use) know about it. Even the startkde script can be long and drawn out, so trimming the fat and only including what's needed on your system can make a big difference. I've shaved over 13 seconds off a boot sequence by writing a minimum bootscript for my hardware, and that was using a relatively fast distro to start with.
-Mike
Re:Customize the Bootscript, Trim the Fat (Score:5, Informative)
DEPEND="foo bar"
Parent
This used to annoy me (Score:2)
Back when I was starting out with Linux, this used to annoy me and was a factor to consider when weighing up Linux vs Windows.
Eventually, as I became more proficient in Linux, the longer boot time became less and less of a factor as Windows became less useful for me compared to Linux.
The "bootchart" tool looks promising. (Score:3, Interesting)
The "bootchart" tool mentioned in the article looks promising. But it's mostly unlabeled bars. Until they figure out how to correctly identify all the processes running during boot, it's not too helpful.
The CPU utilization during booting is much higher than I would have expected. That's interesting, and unexpected. For most of the first ten seconds of post-kernel startup, the system is CPU bound, while the disk is idle more than half the time. Where is all that CPU effort going?
Re: (Score:2)
Immediately after kernel startup, there is a lot of hardware probing and configuration going on. On older systems, setting up ISA pnp cards can take quite a while. Along with that, udev uses a lot of cpu time getting things going. Dbus was also one of the slower services to start. Also, if your init scripts are really borked, you can waste several seconds waiting for a dhcp response.
Also, the b
How to Pimp Out Linux Booting (Score:3, Informative)
http://www.bootsplash.org/ [bootsplash.org]
Uh, yeah, I guess I could make good use of bootchart from the article too... mmm... more eye candy.... and you can keep looking at / admiring your stats / comparing with you friends' stats long after after you've booted up anyway!
Seriously, real Linux servers don't reboot
(burned by playing with runit some time ago)
Popular FUD. (Score:2, Insightful)
A common complaint about Linux is the amount of time the operating system takes to start.
Actually, it's a common insult and FUD. Understanding your boot process is nice and all, but your distribution already does this and has come to reasonable compromises. If you want to tweak with it, more power to you but you won't really save much. With proper power management you don't have to boot at all. For instance, the laptop I'm using says:
12:47:33 up 65 days, 15:12, 21 users, load average: 1.20, 1.50,
Re:Popular FUD. (Score:5, Insightful)
And it's your comment the one that is insulting. You insult lots of experienced Linux users who do care about their machines booting several times slower than an XP pc.
And why is that? Because Linux boots up with a slow and serialized process, in which the whole system (with hyperthreading, gigs of ram, dual core, etc.) sits idel waiting for a single stupid syslog daemon to start, or worse: waiting for a DHCP client to get an IP address!
Parent
Re: (Score:3, Informative)
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
Anecdotal evidence suggests otherwise. On my (old; I ditched it this morning for a Mac...that feeling, twitter, is called cognitive dissonance) PC, XP booted in about 20-25 seconds whereas Ubuntu took about 30-40 seconds. I'm not even going to start on the prepostorous LiveCD thing...how could a full Linux/GNOME desktop booting f
Re:Popular FUD. (Score:5, Funny)
Parent
Re:Popular FUD. (Score:4, Insightful)
Denying the problem doesn't make it go away, really. All the hibernation and sleep modes in the world don't change the fact that Linux boot times are much longer than, say, Windows XP's.
I'm sorry, but I run both Windows and Linux on my Dell Inspiron 6000 laptop, and booting Linux takes much, much longer. We're talking 2-3x longer, in fact.
Yeah, that's nice and all, assuming the power management actually works correctly.
Which, for many laptops, it doesn't. For instance, some time ago I finally managed to get hibernation mode to work (after a lot of fiddling), but it was still experimental at the time (ca. half a year ago) and would crash on resume sometimes. Not good when you have some important applications still running.
Now I'm running a different distribution (FC5) and it hangs after resuming from "normal" sleep mode (which is activated when I close the lid).
So yes, boot time is quite relevant for me, thank you very much, and saying this is FUD is
Or perhaps they are people who get tired of having to spend 2 weekends to get some stupid features, such as sleep mode and hibernation, to work correctly. Which then promptly breaks, of course, on the next kernel upgrade (which, in my case, was needed to get wireless to work).
This is also why I won't bother with trying to speed up the boot-time of my laptop, I'm waiting for some decent distro which does it for me!
Parent
Re: (Score:3, Interesting)
If boot time didn't matter then people wouldn't complain about it. You could hibernate all the time, but hibernation isn't perfect (or safe in all situations), and some people just like to start wit
How about 1.1 seconds to the bash shell? (Score:3, Interesting)
http://www.embeddedarm.com/epc/ts7400-spec-h.htm [embeddedarm.com]
Re:How about 1.1 seconds to the bash shell? (Score:4, Insightful)
Parent
Ubuntu already uses Upstart (Score:5, Informative)
I did used the "profile" command in my bootup once, after reading about it in another article recently. So I guess my Ubuntu is booting about as fast as it can (unless I have useless processes starting up. I'm still trying to figure that out--I'm a noobie).
Lots of always-on selfishness (Score:3, Interesting)
Anybody else appalled by the amount of people saying "just don't turn it off"?. I know I am. It's shocking for various reasons:
If you leave your computer on 24/7 just for convenience, then perhaps you ought to consider the possibility that you are a spoilt rich selfish pussy and not the infallible sysadmin you undoubtedly believe yourself to be.
Re: (Score:3, Interesting)
I pay for my hydroelectricity thank you very much. I use CFLs and wash my clothes with cold water.
2. It's an unnecessary security risk to leave so much of your sensitive data connected to the internet completely unattended.
Oh yeah, if my machine is easily hackable, leaving it on 12 hours a day instead of 24 will make a huge difference.
3. If you do get compromised, there is then the ethical issue of the amount o
Re: (Score:3, Insightful)
So what? With my monitor turned off, my desktop uses a lot less energy. I'm not running a giant 500w power supply though. It's no worse than leaving a few lights on. Also, these are Linux boxes were're talking about -- they're hardly sitting around idle. (Mine is generally running MythTV, downloading one thing or another, etc.)
I like having it do things that I don't want to sit there and wait on.
I don't think security is such a big issue it deserves two points
No problems for the most part. (Score:3, Interesting)
The lack of a method to switch back to the traditional, detailed boot sequence is annoying. Editing
The other problem comes as a result of the first. There is, with no option to switch to a detailed boot sequence, also no way to skip network detection. I am used to just issuing 'Ctrl+C' to skip it, and so it is quite frustrating sometimes. If you aren't connected to a network, or if you connect only after you have brought the system up, you are stuck waiting however long the default timeout is, unless you, again, perform a manual edit. This wouldn't be so much of an issue if arguments could be passed by default at boot-time, but as far as I know they cannot.
Once again, if anyone knows of solutions to these issues that I am ignorant of, I'd be grateful to hear them. Other than what I have related, though, K/X/Ubuntu 6.10 boots very quickly, and I am quite happy with it.
No it isn't. (Score:3, Insightful)
No it isn't. Of all the things I've heard people complaining about Linux about, the start up time isn't one of them.
Linux boot time? How about hardware startup! (Score:4, Interesting)
In my experience (data center, 350+ Intel-based servers, Linux + Windows plus a bunch of SPARC Solaris boxes), the OS boot time is negligible compared to the time needed for hardware initialization:
- BIOS startup
- Memory check
- Remote Console init (DRAC/XSCF etc.)
- RAID Controller(s) init, disk spinup
- RAID Consistency Check, volume initialization
- Start Boot Sequence
Especially the disk subsystems cause large delays - most time is spent waiting for the GRUB screen.
Parallelizing the hardware initialization is where we could make some significant progress.
Boot times don't bother me (Score:5, Funny)
Speeding up modern Ubuntu boot not easy... (Score:4, Informative)
For example, there is an improvement in the time it takes for the clock to appear from "Ubuntu Dapper Flight 3 Default kernel" to "Ubuntu Feisty Herd 5 generic kernel". The Ubuntu folks worked hard to try an eliminate sleeps from their initscripts and when a sleep was unavoidable they would run other parts of the startup process in parallel. They also made changes to Xorg to prevent it (re)reading so much stuff on launch [fooishbar.org]. There was also the introduction of the readahead script which tries to arrange for as much of the boot time reading to be done in one big chunk. Throughput is higher when the disk is only reading and can utilise it's readahead. An attempt is also made to try and request files in the order in which they are laid out on disk (to minimise disk seeks which hurt performance). In Feisty a move was made to using dash instead of bash for scripts [ubuntu.com] because it was smaller and executes scripts faster.
The only things that seem to win me any gain over the default Ubuntu Feisty install are turning off initscripts for services I absolutely won't use (e.g. ipv4 autoconfig via avahi) and reducing the number of restricted binary driver modules being probed (I have long noticed that the only benefit that recompiling the kernel gives to boot speed is that you can simply leave out features not on your computer making the initial kernel startup where it probes for things you might not have (like which software RAID is faster) a shade faster). It is also worth noting that Ubuntu starts X quite early and continues loading services afterwards which means the gain from disabling one of these "after X" services (like CUPS) isn't so noticeable (but might mean your desktop actually starts responding to clicks a bit sooner).
Profiling the boot to try and improve the readahead takes a long time to run - the profile run seems to take three times as long as a regular boot. It could be argued that you will never gain back the extra time you waited on the profile run...
I suspect reducing the boot further will start to need more complicated procedures, perhaps reordering modprobe.conf [redhat.com] and reducing the amount of needless reading of files [livejournal.com]. Eventually you end up having to do the same tricks as Windows/OSX - e.g. working out where the fastest part of the disk is and copying every file needed to boot there [kernelthread.com], bringing up the network cardafter the desktop has started [microsoft.com], periodically defraging bits of the disk, prelinking [redhat.com]...
Re:An Uninformed Question (Score:5, Informative)
Parent
Re:An Uninformed Question (Score:4, Interesting)
Parent
Re: (Score:3, Interesting)
For my machine and GNOME, not true. GNOME goes through its splash screen and shows a desktop, but it is still loading panel applets and the clock. It takes several more seconds. It's hardly usable because loading anything while it's at this
Re: (Score:3, Insightful)
Wow, I love the "restore session" on Firefox. Anyway, I just timed my reboot, and from the time I hit "enter" to choose a distro (multi-boot) and the time GDM finishes loading, it's 23 seconds.
Re: (Score:3, Interesting)