cancel
Showing results for 
Search instead for 
Did you mean: 

Superfetch/Prefetch in a system with SSD and HDD

idata
Esteemed Contributor III

Dear all,

I'm still confused about disabling superfetch. Why should it be disabled? RAM is still much faster than an SSD.

Second and more important most people with an SSD usually also have a HDD. I have certain applications and games on a HDD and therefore would like to benefit from superfetch especially since RAM is so cheap.

Superfetch has 4 settings:

  • Disable Caching: 0
  • Cache Applications Only: 1
  • Cache Boot Files Only: 2
  • Cache Everything (default): 3

So basically ideal case would be to set it to 1. However what does windows recognize as an application? Also stuff not on c:?

4 REPLIES 4

DShar11
New Contributor II

I don't really think it will matter to performance one way or the other frankly.

I know the toolbox wants to turn it off to be "optimized" but I think you are good either way.

idata
Esteemed Contributor III

I believe one of the reasons Super and Pre-fetch are suggested to be disabled, is due to something that Prefetch does with the list of boot files and/or applications that it maintains in a list for pre-loading. By default, every three days it sends a defragmentation command to the C:/OS drive, with an option that causes it to move the boot files and applications in that list to the beginning/fastest portion of a HDD to further decrease the loading time of those files.

Not only is that not applicable to SSDs (there isn't any faster or slower access or speed NAND in a SSD) it also runs a useless defragmentation on the SSD. Not only are the additional writes from the defrag to the SSD providing no gain in performance, the defrag will ruin the SSDs wear leveling, by putting all the files in near-sequential LBAs. The SSDs firmware will need to do extra work to undo the crowding of files into one or two NAND chips, out of the four, eight, or more that the SSD may have. That will cause unnecessary writing on the SSD. If that defrag is allowed to run all the time, the SSD's firmware will be constantly trying to fix it's wear leveling that the defrag just ruined again. The amount of writing and write amplification occurring during those processes is useless wear on a SSD, much more than simply using the SSD normally.

Superfetch is an extension of Prefetch, so it may not be possible to only have Superfetch running without Prefetch running. There is also the question of will the scheduled special Defragmentation occur if the defrag service is disabled, or if it can be stopped from occurring. Both of those services are not "free", the file list must be maintained and is updated regularly, so there is some overhead involved. There was also supposedly an issue with Superfetch in Vista that caused it to constantly access the OS drive, and cause the general performance of the PC to slow down. That may have been fixed in Windows 7, I've never heard about it again.

IMO, there are so many low level details in Windows services like these, and in SSDs that we do not understand, or the affects on the SSD that may or may not occur. I tend to trust Intel in this case. The explanations for disabling them are really not given, but this defragmentation thing may just be the tip of the iceberg.

i keep superfetch and prefetch enabled, but disable the automatic boot file defrag part of the prefetcher.

Windows Registry Editor Version 5.00  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]"EnableBootTrace"=dword:00000000"EnablePrefetcher"=dword:00000003"EnableSuperfetch"=dword:00000003  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]"Enable"="N"  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]"EnableAutoLayout"=dword:00000000

p.s. defragging, while not very useful for an ssd, won't ruin ssd wear leveling. a file that is defragged and occupies one contiguous block of lba's will still be split across multiple nand devices.

idata
Esteemed Contributor III

Have a read here: http://blogs.msdn.com/b/e7/archive/2009/05/05/support-and-q-a-for-solid-state-drives-and.aspx http://blogs.msdn.com/b/e7/archive/2009/05/05/support-and-q-a-for-solid-state-drives-and.aspx

Be default, Windows 7 will disable Superfetch, ReadyBoost, as well as boot and application launch prefetching on SSDs with good random read, random write and flush performance. These technologies were all designed to improve performance on traditional HDDs, where random read performance could easily be a major bottleneck. See the FAQ section for more details.

Since SSDs tend to perform at their best when the operating system's partitions are created with the SSD's alignment needs in mind, all of the partition-creating tools in Windows 7 place newly created partitions with the appropriate alignment.