• 7

A PHP Error was encountered

Severity: Notice

Message: Undefined index: userid

Filename: views/question.php

Line Number: 191


File: /home/prodcxja/public_html/questions/application/views/question.php
Line: 191
Function: _error_handler

File: /home/prodcxja/public_html/questions/application/controllers/Questions.php
Line: 433
Function: view

File: /home/prodcxja/public_html/questions/index.php
Line: 315
Function: require_once

name Punditsdkoslkdosdkoskdo

How to measure boot time?

I was wondering what is the "proper" or "most significant" way in which to measure the boot time of a client machine:

  • From turn on to login prompt
  • From turn on to login prompt (HDD light off)
  • From turn on to browser open (HDD light off)
  • From turn on to 3 most commonly used application open (HDD light off)


I generally use the third, as this measures the time before the system becomes usable and useful. What do you think?

    • I saw a software program the other day on my local news that seemed to be able to create a chart of the start time of each individual Windows system service and showed the order of them starting up. I don't remember the name of it though...

I would measure the time from the point that POST ends to the time that an automated login completes and the user is able to use their most frequently used application (ie: Firefox,etc). Waiting for the hard drive light to stop is mostly meaningless with background indexing and read ahead related tasks, your hard drive may not stop activity until several minutes after you're actually able to begin using your computer effectively.

If you're doing this on Linux you can try Boot Chart, it will help you identify what's taking so long to boot.


The main thing is to be consistent in your measuring methodology so that if you tweak anything you're comparing apples to apples.

  • 2
Reply Report

I don't know if there's a standard for this, but personally I consider my system to have 'booted' when I am able to open the start menu (or dock) and start an application. Before that point I don't really consider the system usable.

That said, I imagine any manufacturers that are quoting boot time are quoting the shortest possible time, which will be to login prompt, or desktop appearing I would imagine.

  • 1
Reply Report
    • Good point, there is no defined point at which a system will be considered booted by all users. You're interpretation is the only one that makes sense to me.

I think boot time is generally measured as when you get your login prompt and can start interacting with the operating system, as the OS has background services running, you can interact with it, and if you're launching applications to measure "usefulness" you're introducing variables that the OS manufacturer has no control over (they didn't make firefox, or other applications you commonly use, so it's not their fault if the libraries/etc. are slow to load).

If you're benchmarking the OS's boot performance, you measure what the OS is taking up in time before it's telling you "Hello, world!"...the login prompt's time to begin taking input.

  • 1
Reply Report

I usually measure and record all these as they will, over time, all vary with system problems, start-up processes, changes to applications, changes to the machine specs, change of models of PC purchased and so on. Have a record of just what these times were at original build can be quite helpful.

On when the final test should finish (3 apps open) there can be value in not just having the app open but having performed a simple first use (e.g. a browser will load a home page and this may suffice; a word processor could load a test document (same for every test: already loaded at least once previously if on a network resource)).

In a few cases a more detailed analysis is worthwhile. Being network-centric I would usually look at timings from power-on such as:

  1. First network transmission (typically a BOOTP/DHCP request)
  2. Time for network load/DHCP set-up and server(s) being used
  3. Time for DNS responses and server being used
  4. Time to end of start-up network activities (e.g. licence/update checks)
  5. Time for browser home page start/end
  6. Time to quiescent (if ever)

Typically these would be done by noting the time on power-up and then looking through a tcpdump or wireshark trace subsequently.

Again, a record of this, perhaps with indications of numbers of frames and total bytes, is helpful as software and systems changes and as a reference in the event of problems.

  • 0
Reply Report
      • 1
    • Network timings for this purpose are going to vary. A lot. So much that you might not be able to make a conclusion from just that. Much better if you have a kernel log or Windows system event log.
    • @dmoisan: Why not both? I would expect that if you want to do this that much of the infrastructure (DNS servers, boot servers, content servers) that would be measured in the tests are local (in the same building or campus) or no more than a single WAN hop away and under your control. I wasn't including tests of internet-hosted resources as these are much more variable. Even so, if variable-time resources are needed before a device is fully available to the user then samples of timings in different load conditions will still be helpful for informing the help desk and for future fault-finding.

On Windows I generally measure until the Start menu can open or you can get a response by right-clicking on the desktop. Another metric can be obtained by keeping taskmgr.exe in your Startup folder; once CPU usage drops to a usable state the machine can be considered "booted". A lot of software can load post logon (AV, various agents or clients, etc) and there seems to me to be no point whatsoever in getting you to the desktop as fast as possible if it's completely unusable for a few minutes after that.

  • 0
Reply Report

The official Windows definition of boot time, starts when NTLDR or WINLOAD finishes and the kernel starts by noting the system time and initializing its drivers and ends at the first logon, when the boot is considered "good".

(In Windows, the WMI object for this is Win32_OperatingSystem/LastBootUpTime.)

For any system, Windows or not, you might want to get a stopwatch and see how long the POST goes. Stop when you see the OS screen. It can be very long if you have one or more RAID or SCSI controllers in the machine. Then take another measurement from that point until the machine is usable/you log in/all your daemons start.

  • 0
Reply Report

Trending Tags