Boot Process Visualization
zigam writes "The time needed to boot desktop Linux systems is becoming an issue. That's why I recently took the challenge posted by Red Hat's Owen Taylor on the Fedora developers list and came up with a tool for visualization of the boot process. It collects performance data during the boot up and then renders an SVG or PNG performance chart. It immediately helped Red Hat developers solve some issues and I have since received boot charts from other GNU/Linux developers as well. Solaris kernel developers reported success in improving their boot process too." Update: 12/15 20:04 GMT by T : Sorry, someone decided your time was worth wasting; no more mirrored bootchart.
No comments and your IIS web server is down. Nice.
Life is the leading cause of death in America.
OTOH, it *is* IIS, it could die if you blink at it the wrong way. :)
feh. stuff.
I want similar charts of telemetry of a server as it goes down, like the forensics of a Slashdotting. Today's front-page feature should give zigam plenty of data to experiment with ;).
--
make install -not war
Wish I could see 'em!
"You will soon be more aware of your growing awareness." - My first recursive fortune cookie!
How about, uh, you know, actually loading multiple things at once instead of waiting for some service to take its time to start, therby holding everything else up along the way. That's what the problem seems to be - everything has to load in-line.
On another note, I'd like to see other distros do what Red Hat is doing to Fedora's boot screen: Using X resolutions for the startup. Damn, that looks nice! Thought it would be even nicer if the pointless resolution change between bootup and main X server startup was eliminated (it's usually the same res anyway).
It would be cool if it didn't suck.
To reply to my own post, http://64.233.167.104/search?q=cache:A3PMVcmM0kIJ: www.klika.si/ziga/bootchart/+&hl=en, a google cache. Err, not very useful, no graphics and only a minor explanation, but..
feh. stuff.
and the graph shows: WinNT has the slowest reboot performance :P
F/OSS & IT Consultant
IIS... HAhahahaha!!!!!11111oneoneoneone
at least it's up
This is all fine and good, but what we really need is kernel boot music, a theme song if you will. Imagine a harmoniously syncronized beowulf cluster.....
Bah! Here's an ascii visualization of your webserver:
(X_X) <--- Dead in the water
"Mind over matter: If you don't mind, then it doesn't matter"
Regarding boot process - I use swsusp (hibernation to swap space) on my desktop running Linux 2.6.9. Although not working quite reliably yet, speeds up boot 2-3 times.
echo "getuid(){return 0;}" > e.c; gcc -shared -o e.so e.c; LD_PRELOAD=./e.so sh
in case it is slashdotted here is a mirror of the chart.
Linux ===============
BSD ========
The war with islam is a war on the beast
The war on terror is a war for peace
"The time needed to boot desktop Linux systems is becoming an issue."
You mean I'm not supposed to have time to make coffee?
bad joke, but yeah the boot time is getting pretty bad these days on out of the box distros.
"why don't you just slip into something more comfortable...like a coma!"
I added a '&' to my /etc/rc file.
:-D
like so:
$i start&
I have been berated a coupdl times in online forum because 'some services might need it to start properly', but I have never noticed any ill effects. My machines now boots in about 6 seconds
/* oops I accidentally made a comment, sorry */
maybe people are actually R'ing TFA first... what a concept :)
I hope the boot-up images are more interesting than the flatline image of the server hosting them.
The REAL jabber has the user id: 13196
What you do today will cost you a day of your life
I reboot every 497 days.
Mirroring it here:
x x
x x x x
xxx xxx
xxxxxxxx
--------
boottime
http://www-106.ibm.com/developerworks/linux/librar y/l-boot.html?ca=dgr-lnxw82-obg-BootFast
IBM has published a paper on speeding up the boot process using something like a make to launch things in parallel that are not dependent on each other.
My rights don't need management.
You are supposed to leave them boxes on all of the time, like 99.999 % of the time.
http://www.coattails.net/slashdot/bootchart.png
I had some really witty comments all made up and ready to go, but since the site is down people might suspect I didn't read the article....
in a chart or a movie, so we can see the change vs. time.
The scientific importance of this research is that it is a tool to understand DDOS. In case you need something more serious funny.
There is a spark in every single flame bait point.
Ballmer -> 8======D~ O: -you
LI
Here's an example image for you to ogle:
http://people.redhat.com/davidz/bootchart.png.
Seems like the Heisenburg priciple might come into play at some point.
EH MIRROR
(even mirror dot failed at mirroring)
He's got a valid point.
until hibernate features work correctly anyway... and when X locks up and doesn't let you ctrl+alt+f# to another vterm/tty (only had that happen a few times, but it does happen) and you don't have another computer handy to ssh in and fix it...
and if you have a loud computer near the bed...
Actio personalis moritur cum persona. (Dead men don't sue)
I know I'm going to get troll, flamebait, or redundant, or all three for saying this, but...
/. you're going to get hammered. Why the fuck is this funny?
weren't the "your web server can't handle the slashdot load" jokes funny the first 10 billion times they were told? Why the fuck do you people still laugh at that worn out bullshit?
Yes, if you're linked to from a busy site like
And no, I have never been the victim of a slashdotting, I'm just sick to fuck of the first 100 comments on every story being "look at that, the web server burnt up, huh huh huh *drool* *slobber*".
personally, i dont want a visual boot loader. i want a boot loader that can manage to autoconfigure itself, with that option as defualt, to remove all the annoying errors a newbie gets when installing linux and then removing it because of various reasons.
Maybe this is a silly question, but why cant the boot process be optimized for "workstation" type usage? That is: get a usable X login prompt up as soon as possible.
On my machine, a bunch of random (but useful) things are fired up sequentially, before the prompt appears. Some things are used rarely/not at all, but they're still started. I dont want to disable them, but I dont want to wait for them either. Apache. MySQL. Privoxy.
Why doesnt inetd start all these things? Apache would get started on first use. Likewise with the other services -- I pay for the startup (once) when I want to use them.
On a server, it'll be up for forever so starting everything on boot makes sense. For a workstation, the system should be usable as fast as possible; the rest of the services can just as well wait until later.
Blog,Twitter
For me, the user-space initialization is relatively fast. What is a pain is the kernel init time as it waits to hear what SCSI devices exist (including the boot drive). And this is after the BIOS has done the exact same thing.
I suppose I should figure out where the timeout value for that is in the kernel and cut it short. (Doesn't Solaris handle that by saving the data unless you tell it that it needs to rescan?)
The problem with Linux's boot process is that things have to load sequentially using the System V init program. They are given a number and then the init program loads them in that order.
A much better solution would be to say that for each service that needs to be started which services must be started before it and to provide a priority for each service. The boot loader could then use this information to start processes in parallel giving priorities as needed. This would avoid the need to load everything in a predifined order, there would be no running out of numbers, it would not require cooperation to come up with a boot order number and it would allow the user to get to their desktop sooner (does the user really need the ssh daemon running before his desktop is displayed for example?) Of course on a server sshd might be given a higher priority and come up sooner than the desktop.
The system V init program is a relic from the past .
When people "scratch an itch", useful things happen.
Engineering is the art of compromise.
Google caches of:
Main page
Samples page
If you search around in the Google Cache, you can find a link to a Mandrake Wiki that has several bootchart images.
- Tash
nt
Mandrake is using this program to improve their boot times.
This link has some examples of the graphics produced by this program. mandrake
Its pretty bad when you post pics of the Linux boot process and STORE them on a IIS server.
This is a test. This is a test of the emergency sig system. This has been only a test.
...hmm, gotta turn off the computer to sleep so really it gets powered up and down at least once a day
I've got my boot time down to nanseconds. It says:
LI
How about visualizing the meltdown of a web server?
This is a working mirror!
D00d, I've already imagined a liquid cooled beowulf cluster of these and it was SWEET!
By karma, it was nice to know you.
Because there are newbies that still have not seen the "Slashdot Effect" 10 billion times since they read Slahshdot since last 3 months.
I've mirrored some of the site here:
m l
http://slushdot.org/mirror/visualization/index.ht
If you have the whole site email it to me and I'll host it.
Wow, me too. I think the shower draws too much current & pops the circuit breaker.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
I think sometimes people mistakenly equate the sooner they see the desktop as faster boot times -- this is not really true. Win2k, XP as well as Mac OS X tries to bring up the GUI as soon as all of the components necessary to bring it up are there -- thus in the user's perception, the startup time is shorter. That is why these OSes' performance is some what degraded when GUI first comes up -- because the OS is trying to finish loading all of the remaining services in the background.
Is it really? How often do you boot? I reboot whenever there's a power failure (and thank God for ext3). None yet this winter, so I really can't recall how long the boot takes.
See what I've been reading.
While speeding up the boot process is important. Especially in cases where a server goes down and you need to bring it back up quickly. For Linux it is not so important as windows. The system is so much more stable, and a reboot is technically only required if you rebuild the kernel; so you should really never turn the machine off. Of course, power outages without UPSs are a problem, but should be rare.
Another thing you'll notice with Linux is that the boot up is very slow and boring, unless you use bootsplash. But even then, it takes a long time before you can do anything. On windows, XP at least, it brings the gui up right away and you can get to work. But you'll notice that the first minute or so you try to do things it is very slow. The mouse wont move smoothly, programs wont load quickly, etc. What they did in windows is push all the things necessary to get the gui up to the front of the boot process, then they do the rest afterwards in the background thus making the system really unusable for an extra minute or two. For most linux systems it takes about the same amount of time to get everything loaded, but they do things in a sensical order. And once X is running, its running and ready to go.
So speeding up the boot process isn't that great. But it can't hurt either. What I'm really waiting for is a bettery way to reload the kernel without rebooting. There is already something I heard of, but it's not so great.
The GeekNights podcast is going strong. Listen!
So you never shut down your notebook?...
AFAIK hibernate feature on linux is not very stable yet.. (or I might be wrong)
The problem isn't the boot process being slow, the problem is with redhat's strategy.
Putting together lame config utils, in place of doumentaion will never work, and ignoring community opinoin while making a standard base is just childish.
Their version of linux boots slow because their config utils suck. Slackware linux still boots fine, so does arch, and yOPER.
The problem this boot vizualization intends to fix isn't a legit problem, it's just a symptom of poor choices made by RH.
Mode me down: after all, RH = King of Linux (grumble...)
"And we have seen and do testify that the Father sent the Son to be the Savior of the World"
1 John 4:14
Huh?
...oh, wait.
The time needed to boot desktop Linux systems is becoming an issue
Yeah, because you see, them Linux systems need to reboot very frequently, so this is a time-waster for many, many folks.
Particularly the IIs part, drool.
For Windows, use BootVis. Comes very handy to figure out what driver is pausing the boot process for 5 minutes...
For bonus points, explain why Microsoft pulled it from its website.
The first two comments in a row I read were saying how "My linux never crashes, I never reboot, etc etc". That's great. You have to keep in mind that the average /. reader is not the average computer user!
Most people turn off their computer when they are not using it, and actually turn it on when they need it. For the average computer user, boot times mean quite a bit more since they see it more. Don't be ignorant and think that just because it means little to you, it is unimportant to improve.
The premise: The time needed to boot desktop Linux systems is becoming an issue.
Am I missing an aspect of desktop computing, that requires regular reboots, to care how long a reboot takes?
Kernel recompiles are the only thing I run into on a desktop machine that requires a reboot, and those are so infrequent that I don't care if the restart takes 2 seconds or 2 minutes.
here (for http://www.klika.si/ziga/bootchart/), and here (for http://www.klika.si/ziga/bootchart/samples.html).
Uptime is seriously overrated. Uptime is not everything.
My machine dual boots WinXP and Linux. I use Linux, my wife and two kids use Windows. We reboot 2 or 3 times a day. Faster booting is a huge deal to me. I chkconfig off everything I can, but doing as much of that init crap in parallel would be Real Nice.
Instead of people focusing on fanlike structures to liquid cool the computer, it should be the case. Full of liquid, it'd dissipate heat fast by absorbing quickly, then the surface area of the case would dissipate heat. Not that I'm going to do it, but I could totally see people selling liquid filled cases.
God spoke to me.
Would it add to the overhead of loading services to have a WAIT/NOWAIT tag on the init files. For example, my current rc structure is:
/etc/rcX.d/S00SomeInit where 00 is a number that defines the order of startup services, and X is the runlevel.
Now why not just have something like:
S10+NOWAITFILE
S11-WAITFILE
So it allows whatever is in S10+NOWAITFILE to load without blocking, but S11-WAITFILE will block S12SOMETHING until loaded, etc etc
Some people thus complain about the bootup time. ... Personally, I don't see the big deal.
I want a fast Linux boot just to shut up the Win XP users at my work that like to say they boot Windows much faster than I boot my Linux.
There are 10 types of people in the world... those that understand binary and those that don't.
Your electric bill must be rather high.
Doesn't gentoo do something similar, optionally? I could swear I've seen an option for parallel startup, but it was marked with the disclaimer that it only results in a minimum speedup.
Please help metamoderate.
BeOS=
That's what I do with gentoo, but kdm gets started via a telinit (just like a good linux distribution).
and init waits for the whole boot process to finish first.
The solution, change the init script to start kdm/xdm/gdm straight away.
Now all non-esencial services get started while I'm logging into kde.
thank God the internet isn't a human right.
...it's already got the script. I just had to change the start from S99 to S19.
-l
Help cure AIDS, cancer, and more. Donate your unused computer time to worldcommunitygrid.org. Join Team Slashdot!
If you can boot off other media, you can do this easily.
There's always convertfs, which will convert any Linux filesystem to any other (so long as the target supports sparse files): http://tzukanov.narod.ru/convertfs/
And, of course, ext3 being a simple addition to ext2, you can use tune2fs -j to add a journal to any ext2 filesystem. ("Why wait!? Tune2fs today!") Googling for 'convert+ext2+ext3' will tell you all about that.
|/usr/games/fortune
Here some articles regarding booting Linux faster: Boot Linux faster and Reboot Linux faster using kexec Enjoy! ;)
Yes, how stupid of me to shut my laptop down when I'm not using it anymore. Stupidity is the only conceivable explanation.
Last time i rebooted my linux machine was 25 days ago(updated kernel from 2.4.18). Prior to that it had an uptime of 179 days. Not sure I care a whole lot about boot speed since i do it so infrequently. And honestly if your constantly rebooting and starting your linux machine something is wrong. I would however like to see my OS X machine boot faster...
This might make a neat boot up screen - rather than by default flashing you with all the system messages, put up this sucker and update it dynamically. Dunno if that's technically possible in the framebuffer boot screen scene, but it would sure be awesome - and rather than just reading the init log to try and figure out why something wasn't working, you could pull up something like this to help too. Maybe you could also have the previous boot record in the background faintly, so you can compare your previous boot to the current one and SEE any differences.
:-/
Sigh. Something else to add to my "do when I become a genius with lots of time" list.
"I object to doing things that computers can do." -- Olin Shivers, lispers.org
Yeah. My desire to cut my electric bill in half is "stupid." My desire to increase my energy efficiency is "stupid." Attempting to be environmentally responsible is "stupid."
Unless you need your computer to be running 24/7, leaving it on is a tremendous waste of energy, and I think it's unethical. You're an ass.
IBM wrote a white paper on using Make to parallelize the boot process on linux
It seems to ensure that any service that can be started is started as soon as is possible, and that any dependent services don't start until requisite services have completed starting. That was written in September of 2003.
Diplomacy is the art of saying, "Nice doggie!" until you can find a rock.
your update added a link to a pro kerry spam pic. what does kerry have to do with boot charts?
"Update: 12/15 19:32 GMT by T: An anonymous coward adds this mirrored version of one of the bootcharts."
Have you actually bothered to check that link? It made me spit my Coke in laughter.
Mod the parent poster down and remove the link. This is *NOT* a bootchart. It is an anti-Kerry statement.
I recently put FC3 on my Viao 505FX, a Pentium 266 laptop. I am currently in the process of tweaking the boot process, as when I first started it it would take about 5 min to get to the login screen. Far too long if I get to class late or whatnot. By removing things from the boot process (I don't need it to look for SCSI drives, as its a laptop, nor do I need it to look for new hardware) I got it down to about 3 and a half minutes. Still, I hope to make it even faster.
I do want to keep X, but I have gone with XFCE over Gnome, as it seems to be faster, I need wi-fi, but the only sever I need is samba. Does anyone have some suggestions or links to sites about how I can speed things up even more? I still think there are probably a lot of things I can pull out of the sequence, but as I an pretty new to Linux I need a little help on finding where all that stuff is. I don't really worry about trashing the install, there is nothing important on it that isn't backed up somewhere else, so any sort of "you may want to give this a try" type of suggestions are welcome.
"A coward dies a thousand deaths, the brave but one."
At least it's not goatse.
So the problem is that home users are turning off things which they aren't using? Your solution to slow startup times is to avoid starting up the computer? Your attitude is a good example why Linux has playing catch-up to other OS's with regard to user interfaces.
I really hate signatures, but go to my website.
Ask and you shall receive...
Take a look at this article that I wrote up after I posted instructions on how to use lpd to spool mp3s. I was even lucky enough to get some of the logs from the mirrors for analysis. You can see the original slashdot article here.
My Slashdot account is old enough to drink...
My laptop takes an unacceptable five full minutes to boot up to the default Fedora Core 3 desktop. I often hit Ctrl-Alt-F1 to get a text console and do some useful work there, but even this can't be done until two-or-so minutes have elapsed (the time it takes Fedora to run all the boot scripts before the getty(8) processes are started).
/etc/rc.d/rc.sysinit, then /etc/rc.d/rc for the chosen runlevel, then that script iterates through all of the scripts in /etc/rc.d/rc?.d/S??servicename, running each in turn.
The reason is that each boot script is run serially. The Red Hat boot process hasn't really changed since Red Hat 6.0 or so. The init(8) runs
This is well-understood and (reasonably) stable, but has one huge disadvantage. It's SLOW!
Because everything must be done in strict sequential order, blocking operations (like sending DHCP requests to get an IP address, or querying NTP to set the time, and so on) slow down the entire boot process.
Knoppix has a good idea, backgrounding the DHCP query process! Unfortunately, some services depending on knowing their IP address at startup time, so this wouldn't work for systems that run servers.
I'd love to see a more general method used to run as many setup tasks in parallel as possible. I would love to see a keyword-based provides/requires system in the startup scripts, similar to what is commonly used elsewhere to represent dependencies (Makefile targets, RPM keywords, and so on).
If each of the startup scripts would declare capabilities they provide, as well as capabilities they require to be present already, then the startup process can be made smarter, running as many scripts in parallel as possible. It would be similar to how make(1) runs with the -j option, paralellizing, but something other than the actual "make" program would need to be used, to be as error-tolerant as possible (since the goal is to provide you with a useable system, not to detect build failures during software development).
I've never used BeOS but heard that it made strides towards improving boot time, by doing as much in parallel as possible. Maybe there are some good ideas there that we could pick up.
Dr. Demento On The 'Net!
that was then. this is now.
boot time matters. serialized startup scripts, things that sleep needlessly. poor disk layout of all the random data that needs to be loaded at boot time (caching it all in a linear segment that is preloaded into the buffer cache as soon as booting starts is the way to go). they all contribute to boot startup time.
microsoft has requirements of less than one minute, probably closer to half that, from power on to desktop usability for their logo sporting preinstalled hw vendors. while they weild this as a big stick to prevent other software from running, theres no reason linux and bsd couldn't strive to match the nice low startup latency.
it really makes computing a nicer experience.
I dont know if anyone else noticed, but the boot chart site is down (slahsdotted), and the mirrored image has been hijacked. I honestly cant say that I know what on earth is going on in the hijacked image, it just blows my mind.
sig: Playfully doing something difficult, whether useful or not
Click on the link for the update: Boot Chart Mirror. I can't say for sure, because I didn't see the charts before the /. effect took over, but that looks more like election propaganda than it does boot charts.
I have trouble seeing any way that John Kerry (or Bush for that matter) can help speed up Linux boot times.
This sig has been removed pending an investigation.
I don't know why this didn't get modded up the first time, but here's the mirror again: bootchart.sourceforge.net.
Ziga
Ingolfke Confirms it: BSD is dying
IBM has published a paper on speeding up the boot process using something like a make to launch things in parallel that are not dependent on each other.
That sounds very familiar.
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
This "article" is a bigger waste of time than the "bootchart" image...
Well I've been using linux as my primary OS for 2 weeks now. I feer if I had any more boot info I might be in trouble!
Just for comparison Windows XP/2003 use a parallel boot process (along with preloading based on previous boot history). All services (daemons) have dependency lists and services are started as soon as their dependencies are met and run in parallel.
IIRC the biggest speedup came from kicking off the network subsystem asyncronously very early in the process so everything wasn't waiting on DHCP, et al.
My workstation here at work boots in about 15 seconds flat to the login prompt. My home system takes a lot longer because SCSI RAID cards take forever to initialize (as some of you know.)
Anyway like I said: this post just for comparison. I still think BeOS holds the world record for boot speed.
Natural != (nontoxic || beneficial)
I need to turn off the beige box to make silence in order to be able to sleep.
I want power saving that works. Hibernate, hdd spindown etc.
If you use your system every day, like I do, the wear and tear on the hardware by all the added start cycles will eliminate your cost savings. Have a CPU fan go out and your processor melts, and all of your cost savings go out the window. Since I leave my PC on all the time, on the occasions when I do shut it down and let it cool off, I can always tell. The sounds it makes when it starts from a cold boot are *awful*, and they all go away when the components get warm again. I've had more parts fail on start than at any other time.
As far as power consumption is concerned, an idle PC consumes less energy than your average light bulb. Leave your porch light on at night? Chances are it consumes three times as much energy as your PC left on all night.
And as far as environmentally responsible is concerned...unless you don't own a car, are completely off the power grid, never flush your toilets unless they are full, take sponge baths, and recycle absolutely everything, I'd shut the hell up. All of us could do more to help the environment, but we don't and that's life. I think we all have bigger fish to fry than my 35 watts/hour it takes to keep my PC on all night.
So, in short, if you use your system every day, it *is* smarter to leave it on 24/7 than shut it down. Not to mention convenient.
Source Mage GNU/Linux uses a boot system that allows parallel execution of init scripts, while preserving dependencies. The change is modest on my old laptop though. sequential parallel
Here is what I did to give me the shell in as little time as possible with very little side effects. This is for Debian.
/etc/init.d/rc to /etc/init.d/orig_rc /etc/init.d/rc as:
/etc/init.d/orig_rc $* /etc/init.d/bgd_rc $* & /etc/init.d/bgd_rc as
/proc/sys/kernel/printk /etc/hotplug/net.enable /etc/init.d/orig_rc $* /proc/sys/kernel/printk /nohup.out ]; then /nohup.out /var/log/console.log /var/log/console.log /etc/rcS.d into /etc/rc2.d (default run level for me) so those files start early; e.g., moved /etc/rcS.d/S51ntpdate to /etc/rc2.d/S051ntpdate so the dependencies, if any of the files in /etc/rcS.d on files in /etc/rc2.d are not affected.
1. Moved
2. Created
#!/bin/sh
if [ "$1" -eq 0 -o "$1" -eq 6 ]; then
else
nohup
fi
3. Created
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
exec 1>&2
echo "1" >
: >
nice -n 19
echo "7" >
if [ -f
mv
chmod 644
fi
4. Moved some of the files in
5. I also installed mingetty and replaced the entry for vt 1 so it logs me in automatically (this is dangerous to use generally).
Now I get the shell almost as soon as kernel is initialized. All time consuming scripts, especially discover, pcmcia and hotplug run in the background.
Just to compare, I used to use Windows ME. It would crash quite often, and sometimes it would crash during the reboot process. I think uptime was a foreign concept to Win ME. I should have just used the BSOD as my wallpaper.
Anakin Simpson: If you're not with me, then you're my enemy--ooh, donuts!
Compiling some stuff into the kernel instead of using modules and prelinking http://www.linuxforum.com/man/prelink.8.php -- getting rid of daemons that you don't use makes a world of difference. For one thing, when things are prelinked then X starts a hell of a lot faster. KDE just rocks instead of being dog slow. I usually delete the symbolic links to the daemons that I don't need and as a rule if I am using linux as a desktop and if it is working well I even remove the symbolic link from syslogd. (I know some UNIX diehards are squirming) You can use utilities to do this, or you can delete symbolic links in /etc/rc.d/rc5.d. The rc then number corrisponds to your current run level. If you mess one up you can put it back by linking from /etc/init.d/. You can change the startup order by changing the K (startup) and S (Shutdown) number. For example S10sysklogd and S15hotplug - means that Syslog is going to shutdown before hotplug (the number 10 comes before 15). By changing the number I can change the order of things. Some things you can't change the order of because they are dependent on one another. I have been able to speed things up by playing with that. I have been able to get linux to boot faster into X with KDE running than my Windows XP desktop just by cleaning things up and prelinking. It depends on your configuration; is it a desktop or a server?
Also running XDM, GDM, or KDM earlier in the boot process also makes things usable faster. This requires running the X font server earlier.
Just a thought...
-Ronald Stoddard
This is faulty logic. This is like saying "Since I can't do everything, I'm going to do nothing". That's the kind of piss-poor logic which unfortunately is contributing significantly to the current dismissive attitudes toward environmental protection. Sigh...
A strong argument to counter yours would be the simple "Well, I may not be perfect, but at least I'm better than you".
Well, I reboot my system fairy often. It is a laptop, and it goes on numerous car trips -- and shutting the lid, taking it out into -10 C and below while running is rather stupid.
My laptop and my friends decrepid XP system have similar boot times, but as I utterly dislike windows, I'll cope with the boot times
It WOULD be nice if some programs (cough exim cough) would time out faster or at least allow you to bypass it when there is not an internet connection at the time. Waiting 5 minutes for that to time out is a -real- time waster.
I could definitely use a proggie to show me exactly whats taking so long. Then I might be bothered to go and try to fix the problem (Read: Find someone with a little more computer know-how than me to fix it for me)
-- RJ
How about, uh, you know, actually loading multiple things at once instead of waiting for some service to take its time to start, therby holding everything else up along the way. That's what the problem seems to be - everything has to load in-line.
(Note, I recently blew my one Gentoo system away and re-installed Debian unstable so I'm going from memory here).
One of the nice things Gentoo has done is to add explicit dependencies into the init scripts. Most SysV boot scripts just go through all of the scripts for a specific runlevel in order and it's up to the administrator to make sure that daemon A is running when daemon B starts.
Gentoo has explicitly scripted the inter-script dependencies. For example, suppose you want to start NTP to keep your clock up to date. When you run "/etc/init.d/ntp start", that script will check to see if the network interfaces are up (since NTP clearly needs network access) and if not it will invoke the relevant prerequisite service scripts automatically.
This means that you can safely run the init scripts in any order you want. Any script that is invoked before all of its prerequisites are running will just fire them up first. So, theoretically, you could set rc to run /etc/init.d/kdm before anything else, which will get you to a login prompt as quickly as possible. If the scripts are written to handle concurrency properly, you could also just run all of them at the same time, booting all of the services in parallel (though that may lead to excessive seeking).
Although I'm not a Gentoo user, the distro has a few good ideas that other distros should pick up, and I think the boot process is one of them.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
You can cut your power bill in HALF, just by shutting off your workstation. Christ, what are you running, a PDP11?
My computer can be shutdown by:
A. Pressing the power switch on the front of the case. (acpid detects this and performs a clean shutdown immediately)
B. Pressing the power key on the keyboard. (I remapped it to C-A-Del, see point C)
C. Pressing Delete while holding down Ctrl & Alt. (init is set to execute shutdown -h instead of -r)
Of these, B is usually most convenient, because my computer lives in a well-ventilated cabinet in my desk, and I'm too lazy to open the door. But before I had this desk, I always used A.
Also, using the powerswitch, I can reboot (to go into DR-DOS, my second favorite multi-tasking, command-line-based OS) by double-clicking the power switch. This is accomplished by a couple shellscripts I wrote to wait 1 second before issuing the shutdown command, and using -r if a second press occurs.
... Or lack thereof in the case of some various linux and other *nix boot processess. The first step in booting faster is to actually know for sure which things depend on which other things. The ancient simplistic approach was linear ordering (The "runlevels" are a higher-order linear ordering, and then within each runlevel the services were also number sequentially). If a linear ordered list is all you've got, then you're gauranteed to be doing a worst-case serial execution of all the startup tasks, which sucks.
Have a look at Gentoo's init script setup. It actually knows about hard and soft dependencies. It still only fires off one script at a time at the moment, but importantly the system has all the right data in hand to parallelize the process. (Hard dependencies are for instance when then nfsclient script *requires* that the network script is run before it, soft dependencies are things like the apache script saying that *if* the mysql service is enabled, please start it before you start me, but I do not require it if it wasn't enabled explicitly by the admin).
Gentoo would be a great jumping point for parallel ization of startup tasks. The only real issue is screen clutter.... but I think that can be solved (if not terribly elegantly) by line-buffering the startup messages and displaying them serially in whatever order they "complete", resulting in a random line-order on the screen, but nothing stepping on each other's lines.
11*43+456^2
HTTP/1.1 503 - Server Slashdotted
Be nice to the SourceForge mirror.
Great error message, I think I'll update my server.
As an embedded programmer, I've got to get many startup diagnostics and initializations done in the shortest time possible (under 1 second usually) - otherwise you'd be waiting for your car to boot every time you turn on the key. Everything in parallel that can be. Dependancies are mapped out and a static start sequence is defined. Linux has a more variable set of things to do, so I'd expect a more flexible implementation. This shocks me that there is NO implementation.
It doesn't matter what MS does, every application wants load at boot time so it will respond quicker later - this just kills my boot time. Yah, a whole tray full of crap starts and I sometimes use one of those things.
19:25:54 up 160 days, 7:14, 4 users, load average: 0.07, 0.04, 0.00
i wouldn't mind if my computer shut down every now and then when i walked away from it, and then booted up again when i got back in the room.
what's the point of having some linux box running in dusty corner 24/7/365 when you're not at home even half that time? think of all the wasted electricity and produced heat.
if that box is your server -- OK.
but if that box is your workstation -- not OK.
just as windows users have got used to booting their computers, and begun thinking of it as normal thing; so have linux users got used to _not_ booting their systems, and begun thinking of it as it's normal thing.
oh, and what i said about, "i wouldn't mind if my computer booted up when i got back to room", there is a must, that it would have to boot really fast.
In Gentoo (well, at least in ~x86), just edit your /etc/conf.d/rc and set RC_PARALLEL_STARTUP="yes", and now at boot, your daemons start in parallel if possible. Don't know if other distros can do this yet - it looks like Gentoo's own invention.
It isn't that my computer draws a lot of power -- it's that the rest of my house draws so little.
And my primary motivation is NOT saving money. Yeah, I save a lot on the electric bill, but consider this: I recently plonked down $1252 for a washer/drier (at a hefty discount, retail would have been $2200 but I got a special deal) that averages about 10% of the energy/water usage of a "normal" washer and drier. It'll take me over 8 years to recover that cost in the form of energy savings, but I don't care. I'm interested in saving energy, not money.
My next big project is to install a solar water heater on my roof as a booster for my normal water heater. It's kind of tough this time of year, because I go to work in the dark, and come home in the dark.
How much speed up could be got by "compiling" the scripts in /etc/init.d?
I like the other idea that independent processes can be marked for concurrent startups without waiting.
Everywhere I look these days, system boot up scripts, package dependency installation, it seems like dependency analysis lurks.
"Provided by the management for your protection."
35 watts/hour??
Watts are a unit of power, which is energy per unit time.
(1 W)=(1 J)/(1 s)
watts/hour would then be a rate of power, so if your computer uses 0 watts now, 35 watts an hour from now, 70 watts 2 hours from now, etc., then you are correct.
More likely, your computer uses power at a rate of 35 watts.
Not because "RH = King of Linux".
Mod it down because it's just a vague list nonsense. If he told us exactly why their config utils suck and how that impacts boot times it might be interesting or insightful. As it is it's just a boring rant with no real informational value at all.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
Is this news among *nix operating systems??
Windows XP users have had such a utility for years by now (search for Microsoft BootVis).
Automatic profile generation and optimization by reording the boot sequence to make optimal use of idle CPU and hard drive time. And yeah, it's graphical so you can manually analyze what's taking a long time to do as well.
Beware: In C++, your friends can see your privates!
Unless you need your computer to be running 24/7, leaving it on is a tremendous waste of energy, and I think it's unethical. You're an ass.
When your switching power supply starts breaking motherboards by turning it off and on every goddamn day, tell that to the recycling plant that you will never use.
vga=788
Microsoft also has a program developed for in-house use only called Bootvis.
python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
never mind spending a lot of effort for speeding up the boot process. as soon as MRAM will be available hibernate/standby/startup time are obsolete.
Quit perpetuating this stupid myth. Read.
We can send just enough power to the lan card to have it start the computer, so why not leave just enough power to the memory to keep the system up. I guess that's what standby tries to do, but poorly accomplishes.
From the website:
:D
HTTP/1.1 503 - Server Slashdotted
Be nice to the SourceForge mirror.
Cool! Now slashdotting has an official HTTP response!
Damn, I always thought that the init process in linux was the primary problem. Looking at that graph its going to take a lot of work everywhere to get linux booting as fast as XP. It looks like init hasn't even started in the 15 or so seconds it takes my similar XP machine to boot to the start menu.
Your source seems rather ambiguous. Sure, more respondents said to turn it off each day than said it would be harmful, but it wasn't overwhelming, and none of them have any data to back it up.
I've seen PCs run for five years straight, with no problems. And I've had so many PCs fail when I power them on. It seems like power cycling sucks, to me. That said, I turn my PCs off to save power, especially here in NY it's pretty expensive.
My Freakin Blog
A story about slow bootup and nobody mentioned minit, yet?
Well, it does exactly what some people proposed: launch stuff in parallel.
It works and is noticably faster than SysV-init (my laptop comes up in 18s).
Is it really necesary to "boot" a computer at all?
When you boot, a whole bunch of programs are loaded into RAM. Since these will be spread all over the disc, the time taken to load all this stuff will be far greater than just the sum of the bytes divided by the disc's maximum transfer rate.
In addition, most of these programs will then need to initialise themselves, requiring yet more time.
The point I'm getting at is that, having gone through all this, the end result is pretty much the same every time - you end up with the same programs loaded, initialised in the same way.
So why not just dump the final result from RAM to disc as a single snapshot file?
Obviously the use of snapshot files for suspend/resume is well established, but the crucial difference is that these create the snapshot just before you suspend, so it's going to be different every time, and besides, by that point you'll no longer have a "clean boot" configuration. Instead, I'm suggesting creating the file immediately after the boot process has completed.
Then the "boot process" from cold would simply involve loading this snapshot into memory in one go.
I can see one potential problem - the computer won't be set up *exactly* the same after different reboots, but surely there *is* a lot of commonality? The bits that change could be configured after the snapshot has loaded.
Maybe I'm missing something obvious, because I haven't seen this anywhere, but what?
serel
I did the first make-based boot system, IBM did it later :-)
Did you do any research into the relative amounts of energy used in constructing different washers? Think of a $1k front loader vs. a $400 top loader. That extra $600 either (1) is pure profit margin, or (2) pays for more complicated construction. (1) is unlikely in a competative market. (2) means it is likely more energy is used constructing the fancy washer.
Laptops. They boot often. My servers it matters not. Laptops. I know about swsusp. Laptops still boot "often".
I've recently logged in to a certain customer's standardised Windows XP desktop, both under a login which was temporarily assigned to me, and under one assigned to an actual customer employee. In both cases,from login to usable desktop was 6 minutes or greater. Booting the OS was 3 minutes; logging in to another PC (which had already done this config for another user) took 6 minutes or more.
Agreed. To further that, what type of system is the grandparent using that sucks down 35W/hr? Any modern Athlon system or P4 with the hard drives spinning will be closer to 110-120W/hr. Yes folks, your PC is over the 100W light bulb range. I'm sure you don't keep those on all night.
Modern PC's use more power than the CRT's we've connected to them.
Success is as dangerous as failure, hope as hollow as fear.
With those fluttering eyes I thought you were coming on to me. Freak. Honestly.
I don't know if anyone realizes this, but that SVG could have been posted here. Unlike say the PNG.
The web server appears sentient: HTTP/1.1 503 - Server Slashdotted