Boot Performance

Status
Not open for further replies.

dmex

New member
Guru
VIP
Local time
12:20 PM
Messages
1,288
Location
Fremantle, Australia
Ed. Note: This is our first post from a senior member of the development team. Allow me to introduce Michael Fortin who is one of Microsoft’s Distinguished Engineers and leads the Fundamentals feature team that is in our Core Operating System group. Michael leads performance and reliability efforts across the Windows platform. --Steven (PS: Be sure to visit www.microsoft.com/ie and try out the beta 2 release of Internet Explorer 8).

For Windows 7, we have a dedicated team focused on startup performance, but in reality the effort extends across the entire Windows division and beyond. Our many hardware and software partners are working closely with us and can rightly be considered an extension to the team.

Startup can be one of three experiences; boot, resume from sleep, or resume from hibernate. Although resume from sleep is the default, and often 2 to 5 seconds based on common hardware and standard software loads, this post is primarily about boot as that experience has been commented on frequently. For Windows 7, a top goal is to significantly increase the number of systems that experience very good boot times. In the lab, a very good system is one that boots in under 15 seconds.

For a PC to boot fast a number of tasks need to be performed efficiently and with a high degree of parallelism.

  • Files must be read into memory.
  • System services need to be initialized.
  • Devices need to be identified and started.
  • The user’s credentials need to be authenticated for login.
  • The desktop needs to be constructed and displayed.
  • Startup applications need to be launched.
Because systems and configurations differ, boot times can vary significantly. This is verified by many lab results, but can also be seen in independent analysis, such as that conducted by Ed Bott. Sample data from Ed’s population of systems found that only 35% of boots took less than 30 seconds to give control to the user. Though Ed’s data is from a small population, his data is nicely in line with what we’re observing. Windows Vista SP1 data (below) also indicates that roughly 35% of systems boot in 30 seconds or less, 75% of systems boot in 50 seconds or less. The Vista SP1 data is real world telemetry data. It comes to us from the very large number of systems (millions) where users have chosen to send anonymous data to Microsoft via the Customer Experience Improvement Program.



From our perspective, too few systems consistently boot fast enough and we have to do much better. Obviously the systems that are greater than 60 seconds have something we need to dramatically improve—whether these are devices, networking, or software issues. As you can see there are some systems experiencing very long boot times. One of the things we see in the PC space is this variability of performance—variability arises from the variety of choices, and also the variety of quality of components of any given PC experience. There are also some system maintenance tasks that can contribute to long boot times. If a user opts to install a large software update, the actual updating of the system may occur during the next boot. Our metrics will capture these and unfortunately they can take minutes to complete. Regardless of the cause, a big part of the work we need to do as members of the PC ecosystem is address long boot times.

In both Ed’s sample and our telemetry data, boot time is meant to reflect when a machine is ready and responsive for the user. It includes logging in to the system and getting to a usable desktop. It is not a perfect metric, but one that does capture the vast majority of issues. On Windows 7 and Vista systems, the metric is captured automatically and stored in the system event log. Ed’s article covers this in depth.

We realize there are other perceptions that users deem as reflecting boot time, such as when the disk stops, when their apps are fully responsive, or when the start menu and desktop can be used. Also, “Post Boot” time (when applications in the Startup group run and some delayed services execute), the period before Windows boot is initiated, and BIOS time can be significant. In our efforts, we’ve not lost sight of what users consider being representative of boot.

Before discussing some of our Windows 7 efforts, we’d like to point out there is considerable engagement with our partners underway. In scanning dozens of systems, we’ve found plenty of opportunity for improvement and have made changes. Illustrating that, please consider the following data taken from a real system. As the system arrived to us, the off-the-shelf configuration had a ~45 second boot time. Performing a clean install of Vista SP1 on the same system produced a consistent ~23 second boot time. Of course, being a clean install, there were many fewer processes, services and a slightly different set of drivers (mostly the versions were different). However, we were able to take the off-the-shelf configuration and optimize it to produce a consistent boot time of ~21 seconds, ~2 seconds faster than the clean install because some driver/BIOS changes could be made in the optimized configuration.

For this same system, it is worth noting the resume from sleep time is approximately 2 seconds, achieving a nearly instant on experience. We do encourage users to choose sleep as an alternative to boot.

As an example Windows 7 effort, we are working very hard on system services. We aim to dramatically reduce them in number, as well as reduce their CPU, disk and memory demands. Our perspective on this is simple; if a service is not absolutely required, it shouldn’t be starting and a trigger should exist to handle rare conditions so that the service operates only then.

Of course, services exist to complete user experiences, even rare ones. Consider the case where a new keyboard, mouse or tablet HW is added to the system while it was off. If this new HW isn’t detected and drivers installed to make the HW work during startup, then the user may not be able to enter their credentials and log into the machine. For a given user, this may be a very rare or never encountered event. For a population of 100s of millions of users, this can happen frequently enough to warrant having mechanisms to support it. In Windows 7, we will support this scenario and many others with fewer auto start services because more comprehensive service trigger mechanisms have been created.

As noted above, device and driver initialization can be a significant contributor as well. In Windows 7, we’ve focused very hard on increasing parallelism of driver initialization. This increased parallelism decreases the likelihood that a few slower devices/drivers will impact the overall boot time.

In terms of reading files from the disk, Windows 7 has improvements in the “prefetching” logic and mechanisms. Prefetching was introduced way back in Windows XP. Since today’s disks have differing performance characteristics, the scheduling logic has undergone some changes to keep pace and stay efficient. As an example, we are evaluating the prefetcher on today’s solid state storage devices, going so far as to question if is required at all. Ultimately, analysis and performance metrics captured on an individual system will dynamically determine the extent to which we utilize the prefetcher.

There are improved diagnostic experiences in Windows 7 as well. We aim to quickly identify specific issues on individual systems, and provide help to assist in resolving the issues. We believe this is an appropriate way to inform users about some problems, such as having too many startup applications or the presence of lengthy domain-oriented logon scripts. As many users know, having too many startup applications is often the cause of long boot times. Few users, however, are familiar with implications of having problematic boot or logon scripts. In Windows XP, Vista and in Windows 7, the default behavior for Windows is to log the user into the desktop without waiting for potentially lengthy networking initialization or scripts to run. In corporate environments, however, it is possible for IT organizations to change the default and configure client systems to contact servers across the network. Unfortunately, when configuring clients to run scripts, domain administrators typically do so in a synchronous and blocking fashion. As a result, boot and logon can take minutes if networking timeouts or server authentication issues exist. Additionally, those scripts can run very expensive programs that consume CPU, disk and memory resources.

In addition to working on Windows 7 specific features and services, we are sharing tools, tests and data with our partners. The tools are available to enthusiasts as well. The tools we use internally to detect and correct boot issues are freely available today here as a part of the Windows Performance Toolkit. While not appropriate for most users, the tools are proving to be very helpful for some.

One of the topics we want to talk about in the future which we know has been written about a great deal and is the subject of many comments, is the role that additional software beyond the initial Windows installation plays in overall system performance. The sheer breadth and depth of software for Windows means that some software will not have the high quality one would hope, while the vast majority is quite good. Microsoft must continue to provide the tools for developers to write high performance software and the tools for end-users to identify the software on their system that might contribute to performance that isn’t meeting expectations. Windows itself must also continue to improve the defensive tactics it uses to isolate and inform the end-user about software that might contribute to poor performance.

Another potential future topic pertains to configuration changes a user can make on their own system. Many recommended changes aren’t helpful at all. For instance, we’ve found the vast majority of “registry tweak” recommendations to be bogus. Here’s one of my favorites. If you perform a Live search for “Enable Superfetch on XP”, you’ll get a large set of results. I can assure you, on Windows XP there is no Superfetch functionality and no value in setting the registry key noted on these sites. As with that myth, there are many recommendations pertaining to CPU scheduling, memory management and other configuration changes that aren’t helpful to system performance.

Startup is one topic on performance. As described in the previous post we want to continue the discussion around this topic. What are some of the elements you’d like to discuss more?

Michael Fortin

aggbug.aspx


More...
 
Hi dmex, I just read this in another place and thought there were some pretty impressive objectives set for the development team. One of the biggest bogies in XP and Vista has been the turning off of Services to reduce system overhead. In so many cases this results in something not working when you need it to or some unexplainable glitch in your system. I like the notion that the Dev team is looking at Autostarting less services and providing a better trigger mechanism.
 

My Computer

Computer Manufacturer/Model Number
Self Built
OS
Vista X32. Windows 7 32bit
CPU
Intel Quad Core 6600
Motherboard
Asus P5B
Memory
4096 MB Xtreme-Dark 800mhz
Graphics Card(s)
Zotac Amp Edition 8800GT - 512MB DDR3, O/C 700mhz
Monitor(s) Displays
Samsung 206BW
Screen Resolution
1680 X 1024
Hard Drives
4 X Samsung 500GB 7200rpm Serial ATA-II HDD w. 16MB Cache .
PSU
550 w
Case
Thermaltake
Cooling
3 x octua NF-S12-1200 - 120mm 1200RPM Sound Optimised Fans
Keyboard
Microsoft
Mouse
Targus
Internet Speed
1500kbs
One of the biggest bogies in XP and Vista has been the turning off of Services to reduce system overhead. In so many cases this results in something not working when you need it to or some unexplainable glitch in your system.

Hear hear. A prime example for me was I recently set up my home network. I had disabled various services relating to the network and it was a bit of PITA to remember which ones needed to re-enabled.
 

My Computer

Computer type
PC/Desktop
Computer Manufacturer/Model Number
Systems by SmartEyeball
OS
8 Pro x64
CPU
i7 3770K 4.6GHz
Motherboard
ASUS P8Z77 WS
Memory
16GB G.Skill Trident X 2666mhz
Graphics Card(s)
x2 EVGA 780 Ti Superclocked SLI
Sound Card
SB X-FI Surround 5.1 PRO USB / ATH-AD900 Headphones
Monitor(s) Displays
x3 Dell U2410 / 58" Samsung
Screen Resolution
5760*1200/ 1920*1200
Hard Drives
2x Intel 520 240GB (RAID 0) * 2x WD Caviar Blacks 2TB (RAID 0) * 2TB WD Caviar Black * Sony Optirac DVD
PSU
Silverstone Strider Evolution 1200W
Case
Thermaltake Level 10 GT Snow Edition
Cooling
Noctua NH-D14
Keyboard
Topre Realforce // Ducky Shine MX Black // Filco Ninja TKL
Mouse
Thermaltake Theron (Highly Recommended) + Razer Imperator
Antivirus
MSE
Browser
IE, FF, WaterFox
Other Info
GT Extreme V2 Sim Racing Cockpit + 40" LCD and K/B Mouse stand ▼
Fanatec CSR Elite Wheel + Clubsport V1 Pedals + CSR shifter/7G-H ▼Saitek X52 Pro ▼ TrackIR 5 Pro
Buttkicker v2 Seat Rumbler with Dedicated 5.1 and Sub Woofer attached to frame ▼
=
Bloody Big Grin
great read Dmex....

:)SK
 

My Computer

Computer Manufacturer/Model Number
myself
OS
SEVEN x64
CPU
Q9450 @ 3.6GHZ 1.34v
Motherboard
ASUS P5K PREMIUM P35
Memory
8GB 1066 buffalo firestix @ 1152mhz CL5
Graphics Card(s)
Sapphire HD 5970 + GTX260 (physX)
Sound Card
Creative X-FI Xtreme Gamer
Monitor(s) Displays
SAMSUNG 20'' & SAMSUNG 23'' (dual screens)
Screen Resolution
2048x1152 & 1680x1050
Hard Drives
1x seagate 160gb IDE & 1x seagate 160gb SATA
PSU
XCILIO 850w (78A)
Case
CM590 1x 120x38mm & 2x92x38mm / 4x 120x25mm
Cooling
AC7 PRO @ 92x38mm blower, Lamptron military bus bay controll
Keyboard
LOGITECH E110
Mouse
logitech NX5
Internet Speed
2MB
Other Info
its a continual ''work in progress''....
So they really are working on fifteen second boot times ... :sarc:














Later :shock: Ted
 

My Computer

Computer Manufacturer/Model Number
* BFK Customs *
OS
W 7 64-bit Ultimate
CPU
Intel Q9550 Yorkfield
Motherboard
ASUS P5Q Pro
Memory
8GB Dominator 8500C5D
Graphics Card(s)
ATI : XFX 5870
Sound Card
Realtek HD Audio 7-1
Monitor(s) Displays
1x 47" LCD HDMI & 3x 26" LCD HDMI
Screen Resolution
1920x1080P & 1920x1200
Hard Drives
1x 80GB Intel X25-M G2 SSD : 1x 500GB & 1x 640GB WD Caviar Black(s)
PSU
Corsair 620HX
Case
Cooler Master RC-690
Cooling
Tuniq Tower 120, 2x 140mm and 3x 120mm case fans
Keyboard
Microsoft 500
Mouse
Razer Diamondback 3G
Internet Speed
14 Mb/s
Other Info
1x Koutech 3Gb/s SATA HDD Hot Swap Rack
Status
Not open for further replies.
Back
Top