VMware Horizon Community
PhilipArnason
Enthusiast
Enthusiast
Jump to solution

Why disable Superfetch with Windows 7 VDIs?

According to the best practice article:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=102104...

It states to disable superfetch in Windows 7.  I would like to question why this is desired behavior.  After all if SuperFetch increases the boot time and application startup time on physical workstations, it should with vdi guests as well.  The only reasoning I can imagine is that the extra IO consumed is too much of a disadvantage to make SuperFetch worthwhile and perhaps that is correct.  Can somebody confirm this?

Philip

0 Kudos
1 Solution

Accepted Solutions
mittim12
Immortal
Immortal
Jump to solution

I thought the below exert was interesting as it was taking from the VMware View Windows 7 optimization guide,http://www.vmware.com/files/pdf/VMware-View-OptimizationGuideWindows7-EN.pdf.

Loads applications into memory for faster

reload over time. Non-persistent virtual

machines will likely not benefit from this

setting being enabled. Full testing is

recommended to determine the optimum

setting for this service.

Now the guide has you disable the server but in the comments above says to fully test to determine optimum settings.    I can see where a non persistent machine that is being refreshed quite frequently might not see benefit.   I guess the bigger question is has anyone done any performance testing with it enable and disbaled to see the difference?

View solution in original post

0 Kudos
4 Replies
idle-jam
Immortal
Immortal
Jump to solution

it's more towards memory management. it will grab as much memory as possible and upseting vmware's memory balloon and etc, and of course taxi more CPU resources from ESXi hosts.

Superfetch which is responsible for taking up as much of your computer’s memory as possible—albeit for a good cause!

  • SuperFetch predicts which applications you will      run next and  preloads all of the necessary data into memory. It also does      that  with boot files. This helps prevent accessing the slower hard disk too       often. The result? Programs launch much quicker, and Windows boots  faster.
  • SuperFetch’s prediction algorithm is able to      determine which  application users will open by a certain time of day and      by a  certain day of week. It is able to predict up to the next three       applications that the user will launch.
  • SuperFetch is smart—it prioritizes the programs you currently run  over the      background tasks, such as defragmentation. These tasks run  when the      computer is idle, but when they are complete, Windows  SuperFetch populates      the memory again.
  • SuperFetch is dynamic—it adapts to your needs all      of the time.  So, if your favorite programs change over time, SuperFetch is      able  to quickly adapt to this.

Windows SuperFetch populates the computer’s memory with this  preloaded information, to speed up programs and Windows features. So,  what’s the benefit for you? Your favorite programs—for example, your Web  browser, your media player and your e-mail application—are likely to  start faster after a couple of days. Don’t worry, even if you install a  new application, SuperFetch will not have a negative impact on  performance. As soon as the new application demands memory, the  SuperFetch data gets flushed. As far as this program is concerned, the  memory is empty.

0 Kudos
PhilipArnason
Enthusiast
Enthusiast
Jump to solution

I'm interested in exactly where the tradeoff is.  I would gladly sacrifice CPU time in order to have speedier applications, and I bet most others as well.  As for the balloon driver, I'm not sure about that.  After all superfetch will give up memory to other applications, perhaps even the ballooning driver, if requested.  Superfetch and the ballooning driver are both low priority, so I think it's difficult to guess.  Finally, if I don't overcommitt memory, that is not an issue to begin with.  I think these questions need to be answered before a comprehensive view implementation instead of just blindly disabling superfetch as stated in the best practice documents.

Philip Arnason

0 Kudos
mittim12
Immortal
Immortal
Jump to solution

I thought the below exert was interesting as it was taking from the VMware View Windows 7 optimization guide,http://www.vmware.com/files/pdf/VMware-View-OptimizationGuideWindows7-EN.pdf.

Loads applications into memory for faster

reload over time. Non-persistent virtual

machines will likely not benefit from this

setting being enabled. Full testing is

recommended to determine the optimum

setting for this service.

Now the guide has you disable the server but in the comments above says to fully test to determine optimum settings.    I can see where a non persistent machine that is being refreshed quite frequently might not see benefit.   I guess the bigger question is has anyone done any performance testing with it enable and disbaled to see the difference?

0 Kudos
PhilipArnason
Enthusiast
Enthusiast
Jump to solution

I'll be doing performance testing over the next couple of weeks then.  I'll update this post if I find anything conclusive.  Thanks for the great find mittim12,

Philip

0 Kudos