Delayed Auto-Start Services

Time for another Vista tech tip!

Set the way back machine to when you last installed XP.  (For some of you, that may not have been too long ago! :))  So, XP starts all nice and fast, and over time, the boot slowly takes longer.  And it takes longer to log in.  Why is this so?

Perhaps it's obvious, but as we add more and more software to our machines, much of it wants to be running when the computer starts.  Many of these applications are running as services, and that in turn slows down the startup and interactive login. 

Windows Vista introduced the idea of I/O Prioritization.  Instead of just CPU or Thread/Process priority, the I/O issued by those threads can have their own priority as well.  Classically, when an application issues a lot of I/O, that I/O would compete as a first class citizen with any I/O issued by a user application.  The good news, though, is that the I/O is now (or at least should be, if designed for Vista) prioritized appropriately.

But I digress.  When Vista boots, the Service Control Manager will start all the services marked as automatic, similar to XP.  But there's a new way to start services, called Delayed Auto-Start, as shown in the BITS service:



When a service is marked as Delayed Auto-Start (which can be set in the registry or via the services app above), the Service Control Manager will start up all the other services at boot time.  When all of those have reported their status as 'started', the SCM will begin starting these delayed services, with low I/O priority.  Once the service has started, the SCM bumps up its priority back to normal.

The advantage is that these services don't get in the way of login performance and help other services start more efficiently.

Low I/O Priority helps make this possible, and BITS, search indexer, and others use this out of the box.  Other applications, like anti-virus, should be doing low I/O prioritization -- but make sure you're running the latest version as some vendors may have taken awhile to implement this.  (If you're not sure and are technically minded, you can use Process Explorer to examine the I/O request packet (or IRP) headers to determine priority!  Maybe I'll blog about how to do that next!)

And speaking of services, I've had some folks ask me if I think it's okay to go into the services manager (in administrative tools) and intentionally set services to Delayed Auto-Start to gain boot/login performance.  In general, I say proceed with caution and really think about what the service is doing, and any dependencies that service may have.  For example, on my developer machines, I set SQL Server to delayed auto-start.  Obviously, I wouldn't do this on a server machine!

Pingbacks and trackbacks (1)+

Comments are closed

My Apps

Dark Skies Astrophotography Journal Vol 1 Explore The Moon
Mars Explorer Moons of Jupiter Messier Object Explorer
Brew Finder Earthquake Explorer Venus Explorer  

My Worldmap

Month List