According to the best practice article:
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
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?
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!
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.
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
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?
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