|
|
GnatGoSplat
|
Post subject: Re: SuperFetch Posted: Fri Nov 06, 2009 10:45 pm |
|
 |
| Win2008Workstation Member |
 |
Joined: Thu Nov 05, 2009 4:02 pm Posts: 13
|
|
Ugh, I should have checked here first. I spent most of the morning trying to figure out how to get Superfetch to work thinking that if I didn't find info in Google, it must not have been done. Now it seems I spent most of the morning re-inventing the wheel.
Anyhow, I got my Superfetch to appear as though it's working. Service is started. Now, how do I prove or disprove it is working? I'm getting .pf files in Prefetch, when I load programs, the drive grinds away for a long time initially, but when I close the app and re-run the program, it pops up instantly. Adobe Reader, Outlook 2007, IE, WMP, and PowerShell, they all took time to load the first time and now pop up instantly. Could be it was the standard prefetching and not Superfetch responsible for that, I don't know?
The one that stands out in my head is PowerShell. I spent most of the early morning using it to try to get XP Mode to install. PowerShell was really slow to load every time I loaded it prior to Superfetch and I was thinking I should just use the regular command prompt, but now that I have enabled Superfetch, PowerShell loads up fast. I just wonder if that's Superfetch in action, or placebo-effect?
|
|
|
|
 |
|
JonusC
|
Post subject: Re: SuperFetch Posted: Fri Nov 06, 2009 11:15 pm |
|
 |
| Win2008Workstation Expert |
 |
 |
Joined: Wed Sep 17, 2008 8:44 am Posts: 370 Location: Australia
|
|
GnatGoSplat wrote: Anyhow, I got my Superfetch to appear as though it's working. Service is started. Now, how do I prove or disprove it is working? I'm getting .pf files in Prefetch, when I load programs, the drive grinds away for a long time initially, but when I close the app and re-run the program, it pops up instantly. Adobe Reader, Outlook 2007, IE, WMP, and PowerShell, they all took time to load the first time and now pop up instantly. Could be it was the standard prefetching and not Superfetch responsible for that, I don't know? That's not SuperFetch at work I'm afraid, that's good old-fashioned Windows Memory Pooling from Windows NT 4 (maybe 3?) days even. If you load a program then close it, it only marks said programs' allocated memory pool as "available" but doesn't actually clear it until it's needed. So closing and reopening is near instant because it's already got left over bits in RAM. You'd have to start an intensive program that usually takes a few seconds to load, Photoshop CS4 for example, then reboot the computer. Run Photoshop again and time the difference with a stopwatch. Reboot again and time again. Repeat several more times and see if Photoshop loads faster and faster everytime. And if you did it yourself, is that all you did? Just the service? Because SuperFetch is more than just a service, it's a kernel-level driver that loads on bootup before the O.S. even initializes. THEN there is ReadyBoot (not a typo, that's a different thing to ReadyBoo st) which is the SuperFetch component that prefetch all your drivers and pre-usermode binaries.... Also check the entire Event Log (not just Administrative Alerts) for any messages. If you see nothing at all to do with Superfetch or ReadyBoot, then it's definately not working (because if the Event Log handler entry points arn't registered for the kernel driver, then it definately isn't working). Also enable verbose boot logging to actually see if the SuperFetch/ReadyBoot SYS files are actually loaded. Ahem... sorry if that makes no sense! All this is what I remember trying to do when I first did this back in R2 Beta. I only just decided today to reinstall R2 and give this another shot, I sort of wanted to post all that as a bit of a self-reminder too haha... but it's interesting info regardless.
_________________
_________ <- Thanks Microsoft!
|
|
|
|
 |
|
GnatGoSplat
|
Post subject: Re: SuperFetch Posted: Mon Nov 09, 2009 9:37 pm |
|
 |
| Win2008Workstation Member |
 |
Joined: Thu Nov 05, 2009 4:02 pm Posts: 13
|
|
Yeah, you're right, I think my Superfetch isn't working.  Mainly because I think if it were working, Rdyboost should be loaded, but it isn't. I do get in the Event Log, "The Superfetch service entered the running state." However, I also get: The following boot-start or system-start driver(s) failed to load: rdyboost Too bad! I had copied SYSMAIN.DLL, SYSMAIN.DLL.MUI, and RDYBOOST.SYS over, then imported all registry keys relating to those files. I think the ReadyBoot may be part of the RDYBOOST.SYS driver as the keys relating to ReadyBoot are under the RDYBOOST service. I have a ReadyBoost/Operational Event Log handler category, but it's empty (as opposed to Windows 7 which has ReadyBoost and ReadyBoot event items in it). I got a BSOD when I tried to add "rdyboost" under LowerFilters in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F} as it is in Windows 7. I did notice in Safe Mode it lists RDYBOOST.SYS as one of the files it is trying to load. Oh well, maybe someone will figure it out.
|
|
|
|
 |
|
GnatGoSplat
|
Post subject: Re: SuperFetch Posted: Tue Nov 10, 2009 4:39 pm |
|
 |
| Win2008Workstation Member |
 |
Joined: Thu Nov 05, 2009 4:02 pm Posts: 13
|
|
Yeah, I don't really care about ReadyBoost at all. The only reason I'm even looking into it is the registry values seem to give an impression that ReadyBoost, SuperFetch, and ReadyBoot are all tightly integrated with each other. That makes me wonder if it's an "all or none" situation. No, Windows 7 does not even have an ecache.sys file nor emdmgmt.dll. That gives me more reason to suspect maybe ReadyBoost and SuperFetch are integrated together. Here are the files I copied over: c:\windows\system32\sysmain.dll c:\windows\system32\en-US\sysmain.dll.mui c:\windows\system32\drivers\rdyboost.sys I've file-attached my .reg file because it's too big to put in the post (there is a huge registry key for ReadyBoost in it). Attachment: SuperFetch.rar Also, "sysmain" needs to be added to HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost\LocalSystemNetworkRestricted. It's a "Multi-SZ" value and I didn't want to overwrite it with the one from Windows 7 so I added it manually. I did notice HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Superfetch\DiskAssessment gets populated with new values, so the Superfetch service does do something!
You do not have the required permissions to view the files attached to this post.
|
|
|
|
 |
|
JonusC
|
Post subject: Re: SuperFetch Posted: Tue Nov 10, 2009 6:59 pm |
|
 |
| Win2008Workstation Expert |
 |
 |
Joined: Wed Sep 17, 2008 8:44 am Posts: 370 Location: Australia
|
|
GnatGoSplat wrote: No, Windows 7 does not even have an ecache.sys file nor emdmgmt.dll. That gives me more reason to suspect maybe ReadyBoost and SuperFetch are integrated together. This was something I already knew. The new Prefetch/Cache systems in Windows 7 are closer to the HAL (in fact, it's right in-between the HAL and low level device drivers such as Storage I/O), and unlike Vista - ReadyBoost actually does provide performance enhancements even in systems with high-volume and high-speed RAM... ReadyBoost apparently also makes branch prediction for secondary calculations (e.g., non-FPU; i.e., GPGPU/DirectCompute) much better by giving the CPU even more possible code prediction results more instantaneously - this is something that traditional RAM in x86 architecture cannot do at all and is usually left up to L2/L3 cache entirely (due to it's legacy roots). It also explains why Windows 7 is faster than Vista on older hardware - have you tried using a 4GB ReadyBoost drive on a Pentium 4 Win7 machine with only 512MB of RAM? WOW @ Loading Time improvements! The fact that they are between the HAL and system drivers also might explain why you got BSOD'd a few times - it never happened to me at all when messing with ReadyBoost and Superfetch in 2008 R1 because it was a very optional component (as far as the windows core goes). Either that, or you/we've missed the ReadyBoot driver - neither ReadyBoost and Superfetch will not work at all without ReadyBoot, and if ReadyBoot is present without SuperFetch then it will not work either (both scenarios would most definately cause a catastrophic halt in the CPU aka BSOD in Windows terms). ANYWHO.... SuperFetch+ReadyBoot alone should still work without any ReadyBoost references in the registry; insepcting Windows 7 and forcefully removing the ReadyBoost driver didn't disrupt SuperFetch at all for me. But thanks for the info and data, I'll continue to research on my hive comparisons of Windows 6.1 Workstation Vs Server. Cheers!
_________________
_________ <- Thanks Microsoft!
|
|
|
|
 |
|
Leolo
|
Post subject: Re: SuperFetch Posted: Sat Nov 21, 2009 3:20 am |
|
Joined: Sat Nov 21, 2009 3:13 am Posts: 2
|
Hi people, Could you please tell me what are the default values of Server 2008 R2 under this key? HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters I'd like to know the default values of EnablePrefetcher and EnableSuperfetch. Also, does anyone know what do the "enablesuperfetch" values mean? There is conflicting information all over the web. Look for example here: http://www.howtogeek.com/howto/windows-vista/change-superfetch-to-only-cache-system-boot-files-in-vista/Some people say that 1 means boot optimization only, other people say it means apps optimization only. And there are even people that say that it doesn't make any difference at all to change it from 3 to 1. Unfortunately, Microsoft has only documented the "EnablePrefetcher" parameter, and only for Windows XP. The meaning of that parameter in Vista and higher OS is a mystery 
|
|
|
|
 |
|
AsciiWolf
|
Post subject: Re: SuperFetch Posted: Sat Nov 21, 2009 10:21 am |
|
 |
| Win2008Workstation Expert |
 |
 |
Joined: Wed Dec 10, 2008 9:09 pm Posts: 250 Location: Czech Republic
|
Windows 7: Code: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters] "BootId"=dword:00000023 "BaseTime"=dword:1053973f "EnableSuperfetch"=dword:00000003 "EnablePrefetcher"=dword:00000003 "EnableBootTrace"=dword:00000000 Windows Server 2008 R2: Code: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters] "BootId"=dword:0000000f "BaseTime"=dword:10539736 As you can see, the EnableSuperfetch EnablePrefetcher and EnableBootTrace strings doesn't exist in Windows Server 2008 R2.
_________________
|
|
|
|
 |
|
|