Jump to content

How to speed up boot process under Windows Vista or Windows 7


Recommended Posts


Looking for some help.

I noticed that my boot times seemed longer than usual.

Checked the event log and found that on between Jan 26 and Jan 2,7 2012, my boot times went from approx 70,000 ms to 150,000 ms.

No record of my having made any major changes on that date. I have Windows Updates set to manual, and I installed the January updates on Jan 13.

I checked registry and Prefetch and SuperFetch parameters are set to 3; SuperFetch service is started.

One thing I did notice is that prior to Jan 27, the BootPrefetchInitTime and BootPrefetchBytes values (as reported in Event Log) had non-zero values. After January 26, both of those parameters were zero.

Can anyone help me understand what those parameters mean, and (more importantly) what couldh ave caused them to be zero (I think those parameters being zero on the same date that my boot times doubled might be related to the reason my boot times went from 70 sec to 150 sec).

Thanks!

Link to comment
Share on other sites

MagicAndre1981:

Thanks for your response!

I have not yet installed (and run) the Windows Performance Tools Kit.

I am running Windows 7 64-bit, and was a bit concerned about running xbootmgr .... having seen some posts from others who also have Windows 7 64-bit and reported BSOD.

Was hoping to get an understanding of what the BootPrefetchInitTime and BootPrefetchBytes parameters (from Event ID 100 record) mean and perhaps figure our why/how those values suddenly went to zero on the same day that my boot time doubled (from 70 sec to 150 sec).

But the only prefetching (and superfetching) that I am aware of are based on the values of these keys:

EnablePrefetcher and EnableSuperfetch

in this registry setting ...

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters\

... and both were set to 3 on my PC.

Do you know what the BootPrefetchInitTime and BootPrefetchBytes parameters from the Event ID 100 record mean, and what might cause them to change from positive values to consistently be zero? I (or something I installed) must have disabled some kind of boot prefetching, but I cannot figure out what.

Edited by geekster51
Link to comment
Share on other sites

Andre:

In my ReadyBoost - Operational Event Log, I have an entry like this after each boot:

Boot plan calculation completed in 16302 ms.

Boot Plan Timestamp: ‎2012‎-‎03‎-‎05T07:57:20.967033200Z

Reason: System boot completion

Result: 0x6F

And sometimes one that looks like this:

Boot plan calculation completed in 281 ms.

Boot Plan Timestamp: ‎2012‎-‎03‎-‎05T09:43:47.783533500Z

Reason: Disk defragmentation

Result: 0x6F

Prior to January 27, there are similar entries but the result code is 0x0, not it is 0x6F.

Also, this entry is in ReadyBoost - Operational Log after each boot:

Summary of ReadyBoot Performance:

Io Read Count: 27496

Io Read Bytes: 626086912

Cache Hit Count: 0

Cache Hit Bytes: 0

Cache Hit Percentage: 0

Boot Prefetch Time (us): 0

Boot Prefetch Bytes: 0

Boot Prefetch Read Count: 0

And prior to January 27, there are similar entries, but the Cache Hits and Boot Prefetch values are not zero.

I may never be able to figure out what happened on January 27, but it looks like ReadyBoot can not build a plan and the reason is 0x6F.

Do you have any idea what causes a 0x6F result code?

Thanks!

Edited by geekster51
Link to comment
Share on other sites

Andre:

Thank you for your help.

It appears that I have a problem with ReadyBoot or prefetcher (perhaps these are the same).

I downloaded the WPT and entered this command from an elevated command prompt ...

xbootmgr -trace boot -traceFlags BASE+CSWITCH+POWER -resultPath C:\TEMP

My computer then shutdown and rebooted.

After the desktop was displayed, a dialog box was shown saying: Waiting for prefetcher ...

After 5 minutes, another dialog box was displayed saying:

Gave up waiting for Win7RTM physical prefetcher after 300 seconds.

Could not wait for prefetcher.

Couldn't find kernel logger in active logger list.

Couldn't find user-mode logger in active logger list.

I clicked OK. No further automatic boots happened after the first one.

I checked my ReadyBoost - Operational event log, and (as usual) it had this entry (indicating a 0x6F reason code):

Boot plan calculation completed in 5523 ms.

Boot Plan Timestamp: ‎2012‎-‎03‎-‎05T20:16:16.039824500Z

Reason: System boot completion

Result: 0x6F

And indicating that ReadyBoot was not caching anything ...

Summary of ReadyBoot Performance:

Io Read Count: 32000

Io Read Bytes: 724031488

Cache Hit Count: 0

Cache Hit Bytes: 0

Cache Hit Percentage: 0

Boot Prefetch Time (us): 0

Boot Prefetch Bytes: 0

Boot Prefetch Read Count: 0

An xbootmgr.log was created from the one and only boot ... here it is:

[2012/03/05-19:48:15.250] Detected Win7RTM physical (ReadyBoot) prefetcher; the SysMain service is auto-started.

[2012/03/05-19:48:15.250] Registering for auto-run with a 120000 msec delay...

[2012/03/05-19:48:15.250] Completed auto-run change.

[2012/03/05-19:48:15.250] Starting trace...

[2012/03/05-19:48:15.516] Enabled boot logging to 'C:\TEMP\boot_BASE+CSWITCH+POWER_1_km_premerge.etl'

[2012/03/05-19:53:31.513] Detected Win7RTM physical (ReadyBoot) prefetcher; the SysMain service is auto-started.

[2012/03/05-19:53:31.513] Stopping trace...

[2012/03/05-19:53:33.604] Stopped kernel logger.

[2012/03/05-19:53:33.728] Stopped user-mode logger.

[2012/03/05-19:53:33.728] The trace you are capturing "C:\TEMP\boot_BASE+CSWITCH+POWER_1.etl" may contain personally identifiable information, including but not necessarily limited to paths to files accessed, paths to registry accessed and process names. Exact information depends on the events that were logged. Please be aware of this when sharing out this trace with other people.

[2012/03/05-19:54:02.384] Merged ETL file to 'C:\TEMP\boot_BASE+CSWITCH+POWER_1.etl'

[2012/03/05-19:54:02.399] Waiting for prefetcher...

[2012/03/05-19:58:52.841] Gave up waiting for Win7RTM physical prefetcher after 300 seconds.

[2012/03/05-19:58:52.841] Could not wait for prefetcher.

[2012/03/05-19:58:52.841] Stopping trace...

[2012/03/05-19:58:52.856] Couldn't find kernel logger in active logger list.

[2012/03/05-19:58:52.856] Couldn't find user-mode logger in active logger list.

[2012/03/05-19:58:52.856] Unregistering auto-run...

[2012/03/05-19:58:52.856] Completed auto-run change.

The log shows the same problem .... boot manager gave up waiting for prefetcher.

An ETL file (boot_BASE+CSWITCH+POWER_1.etl) was created (from the single boot). I used this command:

xperf /tti -i boot_BASE+CSWITCH+POWER_1.etl -o summary_boot.xml -a boot

... to create a summary_boot.xml file, and I will attach that file to this post for your review. The file only represents one boot, so it might not be very useful for analyzing areas to improve my boot time .... but perhaps it contains a hint on what is causing ReadyBoot and/or prefetcher to throw a non-zero result code and/or not respond. I think that once I fix the problem with ReadyBoot (and it starts to function as it should by caching), my boot time will be greatly reduced.

Boot Manager timed out waiting for the prefetcher. Could that have something to do with the 0x6F return code we are seeing in the event log?

Like I said, I think I have a problem with ReadyBoot and/or prefetcher. It (they) are failing to complete properly. I think this (the lack of proper caching) is resulting in my long (> 2 minutes) boot times, and it appears this caused the boot manager to terminate (after one boot) because the prefetcher did not respond.

Any thoughts or suggestions on what I can do to figure out the cause of this ReadyBoot/prefetcher problem would be appreciated. I know I could just re-install Windows, but at this point I'd rather tolerate a 2 minute boot than deal with reinstalling Windows (easy) and reinstalling/re-customizing apps, etc.

Thanks again!

summary_boot.xml

Edited by geekster51
Link to comment
Share on other sites

symantic driver is slow (takes 18s to start):


<pnpObject name="SRTSP" type="Driver" activity="Load" startTime="133102" endTime="151144" duration="18041"

Have you updated symantec before the issues started? Can also compress and upload the boot_BASE+CSWITCH+POWER_1.etl?

Link to comment
Share on other sites

Andre:

Have you updated symantec before the issues started? Can also compress and upload the boot_BASE+CSWITCH+POWER_1.etl?

Symantec (Norton Internet Security) updates on a daily basis (anti-virus signatures). The last version update was on February 2 .... and my long boot times started on January 27 (so we can rule out the Symantec version upgrade as the cause).

I'm a noobie here ... so, just to make sure I understand what you want (re the ETL file), by "compress" do you want me to ZIP it ... or is there some other method of compression you need me to use?

Link to comment
Share on other sites

compress it as 7z (ULTRA compression ratio, LZMA2 compression type)

I downloaded and installed 7-zip.

Compressed my ETL file using ultra compression and LZMA2 type.

Compressed file is 8.41 MB, but my global upload quota here on MSFN is only 500 KB ... so I cannot attach the 7z file. Is there any way for me to increase my upload quota here?

In the mean time, I looked at the ETL file using xperf and noticed that the ReadyBoot I/O chart has a large number of cache misses. I took a screen shot of that chart and attached it.

Until I can increase my upload quota, if you wish, I can take screen shots of any other charts you need to see and attach them.

Seems to me that ReadyBoot is not caching ... and if it did, my boot time would be significantly reduced. But (other than reinstalling Windows) I am not sure how to get ReadyBoot to start caching again (prior to January 27, ReadyBoot was caching).

post-350159-0-87078800-1331063897_thumb.

Edited by geekster51
Link to comment
Share on other sites

When I want to disable ReadyBoot/Prefetch/Superfetch (and I always do, because I don't believe in caching of caching of caching - the HDD, whatever model it is, has its own cache, windows does file caching, and I think that's enough, or else something is bound to go wrong one day) I go to administrative tools > performance monitor > Startup Event Trace Sessions and disable ReadyBoot.

My point is, you should check if you have it disabled there. Some tweaking programs and guides do.

GL

Link to comment
Share on other sites

PROBLEM SOLVED !!!!!!!!!!!!!!

GroftLuigi:

Thanks for the suggestion ... I started the Performance Monitor, and verified that the ReadyBoot task was still enabled.

Andre:

Thanks for your help.

We both thought of the same thing. I went for a walk to think about this problem ... and concluded that the reason ReadyBoot was unable to cache was that it was unable to access its cache folder. When I got home, I checked the date stamps on the files in the c:\windows\prefetch\readyboot folder and found all the dates were January 26 (i.e., the last date when the ReadyBoot cache worked).

Then, I saw your latest post in this thread suggesting that I move the ReadyBoot folder. Instead, I just renamed the ReadyBoot folder and rebooted. The boot was a bit faster, and the Result Code in the Event Log for ReadyBoot's boot plan calculation was no longer 0x6F ... instead the Result Code was 0 .... a very good sign that the cache was being used again.

I rebooted again, and my boot time went from 150 seconds to 51 seconds !!!!!! As I continue to reboot and the ReadyBoot cache gets refined, I'm hoping that my boot time decreases a bit more. But this problem is solved! I am guessing that the problem might have had something to do with folder permissions (ReadyBoot may have lost permission to access the folder/file used to build its boot plan, but I cannot verify that. If we had been able to clearly determine what the 0x6F Result Code meant ... my guess is that it may have indicated that ReadyBoot could not access its designated folder/file).

Lessons that I learned: Window 7's ReadyBoot feature really does reduce boot time. If that feature is broken, then ones boot time can easily double.

To verify that ReadyBoot is working ok ... look in the Event Viewer > Application and Services Logs > Microsoft > Windows > ReadyBoost > Operational for Event IDs 1016 and 1015. These events will occur shortly after the previous boot.

The 1016 record should look like this (and shows that the Boot plan calculation, which determines the files to be cached for booting, returned a zero Result Code):

Boot plan calculation completed in 2449 ms.

Boot Plan Timestamp: ‎2012‎-‎03‎-‎06T19:28:12.885313600Z

Reason: System boot completion

Result: 0x0

The 1015 record should look like this (and shows the Cache Hits for the previous boot). The Cache Hit numbers should not be zero (which would indicate that ReadyBoot's caching is not working).

Summary of ReadyBoot Performance:

Io Read Count: 34728

Io Read Bytes: 745637888

Cache Hit Count: 22178

Cache Hit Bytes: 382853632

Cache Hit Percentage: 0.638620133609767

Boot Prefetch Time (us): 40325470

Boot Prefetch Bytes: 407842816

Boot Prefetch Read Count: 11033

One last comment .... Microsoft (in its infinite wisdom) has implemented two features with very similar names: ReadyBoot and ReadyBoost.

ReadyBoot – decreases boot time (the time from turning power on to reaching the log-on screen) by preloading the files and startup programs needed per-machine into a cache.

ReadyBoost – supports the use of flash storage devices like Universal Serial Bus (USB) flash drives and Secure Digital (SD) flash cards to boost PC performance.

Unfortunately, the Events record for ReadyBoot are found in the ReadyBoost Event Log .... this can be confusing.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...