A. A VDI environment running a desktop OS it is very different from a desktop OS running on a normal desktop machine. In an environment where you have dedicated hardware for an OS instance (a full desktop), you want to maximize your use of that equipment to offer the absolute best user experience. You accomplish this by maximizing memory use by caching information in memory and doing indexing to improve performance of future searches at the expense of CPU and disk resources. When you have a VDI environment where many OS instances share the same hardware, you need to be a little more conservative in your resource use for each client OS so that you can get the highest density of VMs on our hardware while still providing a great user experience. There are some configurations you can make inside your Windows 7 VMs to minimize resource overhead. Note that these are general guidelines and some environments may benefit from certain optimizations more than others. Some settings may not apply in some environments, so you should experiment and configure based on your exact requirements.

  • Ensure that you're running the latest version of the Hyper-V Integration Services.
  • Don't use the emulated network adapter—always use the synthetic where possible.
  • Minimize the number of users who are left logged on when they're not using their sessions. Log people off so the OS is just at the logon screen, not maintaining a session.
  • Disable any resource intensive screen savers.
  • Disable unnecessary background processes such backup and defragmentation. If your VDI environment is dynamic and the virtual OSs are recreated frequently, there's no point in defragmenting.
  • Review any scheduled tasks and disable those that aren't required.
  • Disable SuperFetch, which uses large amounts of memory to cache commonly used applications in memory. Note that if you're using Dynamic Memory, SuperFetch won't result in additional memory being added to a VM, because dynamic memory differentiates between memory being used for applications and memory being used for cache purposes.
  • Disable Windows Search.
  • If graphical experience isn't key, disabling Aero Glass and other advanced graphical elements may benefit the environment. However, this will depend on the graphical fidelity required for the end users.
  • If you're using Microsoft Application Virtualization, use a shared cache instead of one cache per VM.
  • Ensure applications are as well written as possible to not waste resources, including anti-virus applications. Try to use Windows 7 certified version of applications.
  • Review any logon scripts to ensure all steps are required and optimize where possible. This also applies to Group Policies, especially user-specific Group Policies.
  • When using anti-virus applications in the VMs, ensure the correct exclusions are set both within the VM on the Hyper-V host.
  • Let Windows 7 configure its own pagefile, which is typically the same size as the amount of RAM.