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
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.
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"
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 */
I reboot every 497 days.
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.
Here's an example image for you to ogle:
http://people.redhat.com/davidz/bootchart.png.
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 sedond the motion, he builds Linux tools but host his work on an IIS server, mod the original post up.
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.
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 .
If you search around in the Google Cache, you can find a link to a Mandrake Wiki that has several bootchart images.
- Tash
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."
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
Particularly the IIs part, drool.
# First of all, if you run Linux, you're not booting much.
/.ing should be drug into the street and shot for being an idiot. Twice. /.ed your right on that one pal. Yeah. Sure.
Maybe some people chose to turn of their box when
they are not at home or when they are sleeping. Maybe some people want to save a little bit of electricty if they can.
This is the problem with the linux zelots. Someone points out somthing that is annoying and should be fixed and people rush to say how this is a non issue, then they go on to say how this is actually better than the way windows does it.
People who run IIS and then subject it to a
Yeah because IIS is the only webserver that can be
500 dollar reward for tip(s) leading to the arrest of the person(s) who stole my sig.
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.
1. MS = Evil
2. IIS always sucks
3. /.ers are smart enough to know better
Any admin worth his wages knows better than to use IIS, steaming pile that it is. I know the button monkeys like it because it's easier than all that damn reading and knowledge that Apache requires, but it still sucks. And we could exclude Linux from this anyway (if we chose to), Apache runs on Wintel just fine, amongst many other platforms. That said, if you are here hawking your Linux tools there is something lame about hosting them on IIS.
No, you're not booting much. My computer rarely crashes, but I still turn the computer off when I'm not using it -- it's noisy, and produces a lot of heat.
Boot time doesn't have to be an arduous wait. Yes, on out-of-the-box distros it can be incredible, but I blame the distro, not Linux.
Sure, maybe it's the distro and not Linux, but that's missing the point. The idea with this tool is to find ways to improve out-of-the-box distro boot time. The guy isn't knocking the Linux kernel for long boot times, he's trying to improve boot times on typical installs.
If you choose to not fiddle, then you choose to have boot times that are increasing.
That's a strange perspective... if I choose not to fiddle, then do I choose to have an insecure system? Or a slow one? Granted, maybe I could make my system slightly more secure, or slightly faster, by detailed tweaking, but that's no excuse for making inefficient and insecure default settings. It's not reasonable to say "Well, you obviously don't care about boot time if you aren't willing to work on it yourself, so I'll just choose the simplest and least efficient configuration possible," when there are definite steps that distros can take to improve the situation.
People who run IIS and then subject it to a /.ing should be drug into the street and shot for being an idiot.
Alright, I'm with you on this one ;)
I am the man with no sig!
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.
# First of all, if you run Linux, you're not booting much. What...rebooting maybe once a month?
/.ing should be drug into the street and shot for being an idiot. T
/.ing are running IIS from, what I've seen. Ever see Slate or MSN go down when /. links to them?
Some of us shut our computers off. Not every linux PC is a 24/7 server. People own laptops, shut down desktops when not in use, etc. Plus theres linux' ever-growing embedded segment. Your TiVo never gets shut off? How important is boot-time to a device like TiVo or Zaurus?
# Boot time doesn't have to be an arduous wait. Yes, on out-of-the-box distros it can be incredible, but I blame the distro, not Linux.
Yes, distros are poorly configured, and the userbase is largely stupid. Noone talks about runlevels anymore. Put "basic stuff you need to get the user going" on a lower runlevel, and "more advanced gitchy bullshit like AIM etc" on a higher runlevel. Most linux distros behave by default the way a spyware infected win98 box does, making the user wait while it starts umpteen zillion fringe services.
# If you choose to not fiddle, then you choose to have boot times that are increasing. It takes time to autoprobe everything correctly and get it set up if you're too lazy to do it yourself. Windows does it from the perspective of 'throw everything in there and take up gadzillions of RAM'. Linux says, 'I'll autosetup everything but still keep you lean'. You pay for what you get, folks.
Pure "M$ sucks rolF!" bullshit from the clueless. Windows runs a microkernel, Linux runs a monolithic kernel. They work differently. Windows loads the drivers it knows it needs (the installed ones) at boot time, linux pages the crap in and out of the kernel itself.
This is the quickest part of the boot, really. Delays come when you have dhcpcd timing out while looking for a DHCP server that doesn't exist but yet for some reason runs by default even if you have a statically configured address. Or your waiting for privoxy to load and parse its blacklists, or for squid to primp and preen its caches, etc..
# People who run IIS and then subject it to a
Most sites that stand up to a
It has more to do with being able to afford bandwidth than some magical uberneat0 perl script you found on efnet.
I don't need no instructions to know how to rock!!!!
I believe you are thinking along the lines of what bootsplash http://www.bootsplash.org/ does. This is nothing similar; it's designed to visualize where performance bottlenecks are located during the startup procedures. But then, after reading all of the other commentary on here, you may have picked up on that fact already. In that case, I apologize for the redundancy.
A wise person makes his own decisions, a weak one obeys public opinion. -- Chinese proverb
Here some articles regarding booting Linux faster: Boot Linux faster and Reboot Linux faster using kexec Enjoy! ;)
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...
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.
"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.
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...
I don't know why this didn't get modded up the first time, but here's the mirror again: bootchart.sourceforge.net.
Ziga
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.
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
... 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
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.
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.
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
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.