Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Boot Process Visualization

Posted by timothy on Wed Dec 15, 2004 01:51 PM
from the what-in-what-order dept.
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.
+ -
story

Related Stories

[+] Hardware: PC Makers Try To Pinch Seconds From Their Boot Times 399 comments
Some computers are never turned off, or at least rarely see any state less active than "standby," but others (for power savings or other reasons) need rebooting — daily, or even more often. The New York Times is running a short article which says that it's not just a few makers like Asus who are trying to take away some of the pain of waiting for computers, especially laptops, to boot up. While it's always been a minor annoyance to wait while a computer slowly grinds itself to readiness, "the agitation seems more intense than in the pre-Internet days," and manufacturers are actively trying to cut that wait down to a more bearable length. How bearable? A "very good system is one that boots in under 15 seconds," according to a Microsoft blog cited, and an HP source names an 18-month goal of 20-30 seconds.
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
More
Loading... please wait.
  • IIS? (Score:5, Funny)

    by swordboy (472941) on Wednesday December 15 2004, @01:52PM (#11094978) Journal
    No comments and your IIS web server is down. Nice.
    • Re:IIS? (Score:4, Funny)

      by Spetiam (671180) on Wednesday December 15 2004, @02:01PM (#11095118) Journal
      Yeah, where's the tool for visualizing a server meltdown?
    • Re:IIS? (Score:4, Funny)

      by 1010011010 (53039) on Wednesday December 15 2004, @02:09PM (#11095252) Homepage
      For shame! Double shame!



      HTTP 403.9 - Access Forbidden: Too many users [isn't one too many?] are connected
      Internet Information Services

    • Re:IIS? (Score:5, Informative)

      by gniv (600835) on Wednesday December 15 2004, @02:15PM (#11095343)

      Here are some pictures that are not slashdotted yet: one [redhat.com], two [redhat.com], three [redhat.com].

      They are taken from here [redhat.com].

          • Where are you posting? This is /., the following always apply...

            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 h

  • Mirror? (Score:4, Funny)

    by kmmatthews (779425) * <krism@mailsnare.net> on Wednesday December 15 2004, @01:52PM (#11094980) Homepage Journal
    Anyone have a mirror? That was the fastest slashdotting ever, .. 0 comments and his IIS server died.

    OTOH, it *is* IIS, it could die if you blink at it the wrong way. :)

  • by Doc Ruby (173196) on Wednesday December 15 2004, @01:53PM (#11094990) Homepage Journal
    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 ;).
    • by which way is up (835908) on Wednesday December 15 2004, @01:55PM (#11095023)
      I love it so much better when they go down sloooowwww. Oh yeah baby take your time...

      Oh, wait, are we talking about the same thing here?
    • I want similar charts of telemetry of a server as it goes down, like the forensics of a Slashdotting.

      Easy peezy. Simply graph f(x)=x^2 and you'll have a graph of hits as a function of time where x=0 is where the link is posted on slashdot.
      • by Erik Hensema (12898) on Wednesday December 15 2004, @02:16PM (#11095375) Homepage
        Serious answer on funny comment: actually it's a very high initial spike with a gradual decay. See the hourly usage stats [usenet-audio.com] generated for a slashdoted April's Fool site. Note that this site is specifically designed to withstand the slashdot effect by using light graphics, no database and very simple scripting. Server load was low.
  • For starters.. (Score:4, Interesting)

    by Zorilla (791636) on Wednesday December 15 2004, @01:54PM (#11095000)
    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).
    • Re:For starters.. (Score:5, Insightful)

      by kmmatthews (779425) * <krism@mailsnare.net> on Wednesday December 15 2004, @02:03PM (#11095147) Homepage Journal
      On the other hand, Unix wasn't really intended to be booted every day, e.g. the way XP is*. (MS intentionally made sure the boot up was very fast, running things side by side and some other tricks.)

      (* IMHO.. If I'm wrong.. I'm sure you'll let me know..)

            • Here's why ... sshd, cron, and apache are vital to what I do. I don't want to sit there wondering if the reason I can't ssh in or access my site is because the machine is still booting or because of some problem with config. Plus, starting services during boot adds to your diagnostic toolkit and stability.
    • Re:For starters.. (Score:5, Informative)

      by wizbit (122290) on Wednesday December 15 2004, @02:03PM (#11095157)
      Try reading David Zeuthen's analysis [redhat.com] of the FC boot process (with charts) over on the fedora archives. Very interesting - among other things, nearly 200 MB of files(!) are buffered while starting GNOME - quite a footprint - and apparently by putting those files on a separate (non-fragged) partition he sped process by nearly 30 seconds and reports OOo and Firefox start times of around 3 seconds.
      • 200 MB is peanuts for modern disks. Takes them about five seconds to read it sequentially.

        However, a *lot* of time is wasted doing disk seeks while booting. A few things can be done to stop wasting that time:

        • Do parallel loads of daemons. While daemon1 is loaded from disk, daemon2 is run. However, this could also cause extra seeks so this could be sub-optimal
        • Make a 'recorder' for the seeks done during boot and then defragment the disk to minimize disk seeks. This acually is what Windows XP does AFAIK.
      • Re:For starters.. (Score:4, Interesting)

        by Zorilla (791636) on Wednesday December 15 2004, @02:13PM (#11095307)
        Right, but most use the framebuffer kernel extension. That's just a really basic means of getting it done. What you get is a difficult-to-configure screen that's always at 60Hz.

        Fedora actually reads your xorg.conf and utilizes the X video driver being used by your system and runs at the same resolution and refresh rate. It looks really slick if you ask me.
  • by cmpkilla (47878) <cp1134@nullcel[ ]et ['l.n' in gap]> on Wednesday December 15 2004, @01:55PM (#11095019)
    Bah! Here's an ascii visualization of your webserver:

    (X_X) <--- Dead in the water
  • heh (Score:5, Funny)

    by minus_273 (174041) <<moc.oohay.MAPS> <ta> <aaaaa>> on Wednesday December 15 2004, @01:56PM (#11095033) Journal
    in case it is slashdotted here is a mirror of the chart.

    Linux ===============
    BSD ========
    • The graphic you were looking at did not download completely before the server went AWOL. The complete graphic looked like this.

      Linux ===============
      BSD ========(died)
  • by rogabean (741411) <rgeistlinger AT gmail DOT com> on Wednesday December 15 2004, @01:57PM (#11095041) Homepage
    "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.
    • by Zorilla (791636) on Wednesday December 15 2004, @02:03PM (#11095146)
      Reminds me of an old Gateway 2000 commercial where a kid is waiting for a computer to start up. It goes through a montage of the kid screwing around in the garage waiting for it.

      "No, Mom! It's still starting!"

      One of my friends had a theory that held true (up until Windows XP) that Windows (and MacOS at the time, this was 1995) was harmonically tuned to boot up just as long as it would take you to get up and take a piss and come back.

      Though some of the Windows 2000 machines here at work make me think I have enough time to take a dump and come back. They're fast, just something is very wrong with them.
  • by *no comment* (239368) on Wednesday December 15 2004, @01:58PM (#11095068) Homepage Journal
    I added a '&' to my /etc/rc file.
    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 :-D
    • by macdaddy (38372) * on Wednesday December 15 2004, @02:15PM (#11095357) Homepage Journal
      I can think of a number of examples where this would fail but on the average desktop I don't think this would be much of a problem. Servers on the otherhand have to have certain processes started for others to start correctly. MIMEDefang and Sendmail for example. Sendmail and OpenLDAP. PgSQL and OpenLDAP. All the various NFS goodies and any server processes that require something off one of the NFS-mounted volumes. Still I can think of dozens that can and should be started in parallel. I can't think of any ill-effects of starting a number of processes that come to mind in simultaneously. I'll have to give that a try sometime. Maybe the init process should have a Next Generation version that allows you to specify what is absolutely required by a process to start correctly. init-ng can then decide what it can start in parallel based on that. Sounds like a project to me. :-)
      • placing an ampersand (&) at the end of a command in a *nix system (maybe it's shell dependant? iono) causes the process to run in the background. If you do this in a tty/vterm you can continue using the same one instead of switching to another (you can also just use screen for that...)
        One thing that may cause problems is that when the login prompt comes up some services aare still initializing so you may have to wait a bit before accessing any of the servers, for instance your http://localhost for apac
      • by Zocalo (252965) on Wednesday December 15 2004, @02:24PM (#11095468) Homepage
        The correct answer is that it works, but... As the original poster noted there are some dependencies within in the plethora of Linux daemons, and YMMV. For instance some SMTP and HTTP configurations require that DNS is available, so if you are also running your own DNS one the same box then you might have a problem. Realistically of course this scenario *should* mean we are talking about home servers only, but there are some really crappy (V)ISPs out there...

        Still, it's a nice thing to experiment with for people who run Linux in situations where reboots are common, laptops for instance. It's also useful if you are running something like Nessus as a daemon which takes an *age* to initialise itself and obviously has no dependencies. A better solution would be to have an additional prefix on certain init scripts - "P" for "parallel" - to tell INIT that they can safely be started in the background, something that a couple of commercial Unicies do.

  • by earthforce_1 (454968) <earthforce_1@@@yahoo...com> on Wednesday December 15 2004, @02:00PM (#11095105) Journal
    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.
    • by dabraun (626287) on Wednesday December 15 2004, @02:44PM (#11095745)
      Something like Windows XP has been doing for years?

      XP not only boots processes in parallel - it monitors which sectors of the disk are read during bootup, moves them around so they all sit in order in the same place on the disk as a background process, and prefetches the whole damn thing during subsequent bootups.

      It also does the same thing for application launches - you start an app, it profiles what is read from disk, reorders it, and prefetches it when you run the app again later.
      • That's why (Score:4, Informative)

        by gr8_phk (621180) on Wednesday December 15 2004, @04:18PM (#11096933)
        So THATs why XP boots so fast....

        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.

  • Quick Link (Score:5, Informative)

    by Roofus (15591) on Wednesday December 15 2004, @02:05PM (#11095185) Homepage
    Here's an example image for you to ogle:

    http://people.redhat.com/davidz/bootchart.png.
  • by studboy (64792) on Wednesday December 15 2004, @02:09PM (#11095240) Homepage
    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.

  • Kernel init time (Score:3, Interesting)

    by crow (16139) on Wednesday December 15 2004, @02:10PM (#11095253) Homepage Journal
    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?)
  • Windows tool (Score:4, Interesting)

    by ilyag (572316) on Wednesday December 15 2004, @02:25PM (#11095473)
    For Windows, use BootVis [majorgeeks.com]. 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.
  • by phorm (591458) on Wednesday December 15 2004, @02:31PM (#11095553) Homepage Journal
    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
  • by OmegaBlac (752432) on Wednesday December 15 2004, @02:48PM (#11095793)
    Here some articles regarding booting Linux faster: Boot Linux faster [ibm.com] and Reboot Linux faster using kexec [ibm.com] Enjoy! ;)
  • by l4m3z0r (799504) <`kevin' `at' `uberstyle.net'> on Wednesday December 15 2004, @02:49PM (#11095808)
    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...
  • Hahahah (Score:5, Funny)

    by Lisandro (799651) on Wednesday December 15 2004, @02:58PM (#11095914)
    "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.
    • 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...
    • Re:Bah. (Score:4, Insightful)

      by shawn(at)fsu (447153) on Wednesday December 15 2004, @02:23PM (#11095452) Homepage
      # First of all, if you run Linux, you're not booting much.
      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 /.ing should be drug into the street and shot for being an idiot. Twice.
      Yeah because IIS is the only webserver that can be /.ed your right on that one pal. Yeah. Sure.
    • Re:Bah. (Score:5, Insightful)

      by stratjakt (596332) on Wednesday December 15 2004, @02:38PM (#11095652) Journal
      # First of all, if you run Linux, you're not booting much. What...rebooting maybe once a month?

      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 /.ing should be drug into the street and shot for being an idiot. T

      Most sites that stand up to a /.ing are running IIS from, what I've seen. Ever see Slate or MSN go down when /. links to them?

      It has more to do with being able to afford bandwidth than some magical uberneat0 perl script you found on efnet.
    • by pclminion (145572) on Wednesday December 15 2004, @02:57PM (#11095902)
      an issue??? only if you're stupid enough to shut the thing down every night like most ms-windows users do...

      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.