Optimize your Windows 7 virtual desktops for better performance

A little while ago, my German Specialist SE End User Computing colleague, Valentin Allert, sent me a document on how to optimize a Windows 7 virtual desktop in a VDI/VMware View environment, for better performance. He summarized the information he received from within VMware but also information he collected from Proof of Concepts.

Valentin and I wanted to share this information with you:

“There are at least four different areas where optimization can be applied:

  1. The virtual machine settings on vSphere
  2. Inside the virtual machine
  3. Group Policy settings in Group Policy Management Console
  4. Pool settings in View Administrator

1. virtual machine settings:

  • Make sure your golden image/parent VM/master is installed on the latest hardware version of your vSphere platform. Do double check if this HW version is compatible with View Local mode, if you want to use local mode
  • Make sure your VM has an LSI SCSI Controller and not IDE boot device. Especially important for XP, because IDE is the default setting when creating a XP VM
  • If you want to have good Video performance maximize the Video RAM to 128 MB manually
  • If you want to have good multimedia performance, like video, make sure your VM has 2 vCPU’s

2. Inside the virtual machine:

  • We do see customers using their deployment tools and use the same image they use for physical devices, for the new parent VM. Avoid this. Create your parent VM from scratch, so, for example, different hardware drivers won’t be in the VM. Keep the VM as clean as possible
  • Install VMware Tools first and after that, install the VMware View agent
  • In our Windows Optimization Guide for Windows 7, you will find three Text files. Rename 1 of them into .bat. Before you run this file, do read the guide carefully. Check what this script will turn off/disable and make sure this fits in your environment. Then, run the file which fits to your scenario:
  1. If you are updating from an earlier Version and you want to use the same golden Image but want to activate VMware Persona Management only use CommandsDesktopsReadyForPersonaManagement.txto
  2. If you have a fresh installation and a want to use VMware Persona Management use CommandsPersonaManagement.txt
  3. If you have a fresh installation and don’t want to use VMware Persona Management use CommandsNoPersonaManagement.txto

If you want to use AERO with glass etc. you have to delete or REM the following lines in the script:

  1. Powershell Set-Service ‘UxSms’ -startuptype “disabled”
  2. Powershell Set-Service ‘Themes’ -startuptype “disabled”

I always would delete the second line though, otherwise the new View Desktop looks like Windows 3.11 which is not good for user acceptance.

  • Run the script as administrator (yes the right click “run as” command)
  • One settings is most important and unfortunately I couldn’t find a way to set this settings through GPOs:
  1. You must have left Themes activated when running the optimization script (step before). Log on as Administrator
  2. Choose Windows 7 standard theme
  3. Go to advanced settings->performance ->enable adjust for best performance but then activate the last point visual styles again:









  • After that, you could consider creating a default user with these new settings. Follow the official Microsoft steps to do so. Yes, Sysprep is the only supported way.
  • Optionally, create a snapshot and call it first optimization
  • Install the apps you want to have in your master Image
  • Create your final snapshot call it Master 1.0

3. Group Policy settings in Group Policy Management Console:

  • Create an OU where you will deploy your View desktops
  • Create a Group Policy Object for the virtual desktops.
  • Right click, edit -> if you are pre 2008 using adm files go to computerconfiguration -> administrative templates ->right click import/export
  • Delete all default template out of the object
  • Import PCoIP adm files located on your View Server: C:\Program Files\VMware\VMware View\Extras\Group Policy Files\
  • Go to: Computer Settings -> administrative templates -> classic administrative settings -> PCoIP settings
  • Activate -> Not to build to lossless – This settings prevents PCoIP from always build the picture to a lossless condition which is only used in graphical, healthcare or construction scenarios
  • Set Min picture quality 50 / max picture quality 70 / 24 Frames Because of the history of PCoIP we it uses 30 FPS as a default which is way to high if we consider that an Movie has 24 FPS
  • Disable AES 256 and Salsa encryption, if using 5.1 if you are using an older Version disable only Salsa because one of the encryptions has to be activated. 5.1 has three encryptions so you can disable two, earlier version have two encryptions so you can disable one.
  • Disable all features you do not need like maybe Audio or Clipboard
  • Do not play around with settings like bandwidth floor etc. PCoIP has a pretty behavior by itself.

4. Pool Settings in View Administrator:

When creating your first pool with linked clones make sure to have at least these settings, all other settings are depending on your use case:

  • If you are on vSphere 5.x and View 5.1 make sure you have the View Storage Accelerator enabled
  • If you have Video intense workload configure the pool with 4 monitors and max resolution (even if you don not need it)
  • If you have CAD, Google Earth or any other DirectX or OpenGL Apps activate 3D (if you do not have the option you have to disable –allow users to choose protocol-) if you still do not have the possibility to activate AERO inside of the Desktop you have to make sure that the script didn’t disable UXSMS and Themes services (DirectX and OpenGL are working anyway.)
  • Place your Replica on a SSD if you have them. If you have a storage system with storage tiering, with a big cache make sure to create only one replica place it on a small extra LUN (save time and space and the replica will end up in the cache anyway)”

Additional Information:

VMware View-Templates; XP and W7

One of the important parts in a VDI environment is storage. A VDI solution needs to have a proper storage solution that can handle all iops required. Iops generated by virtual desktops could be your enemy.

VMware still has the storage considerations white paper on its website. This white paper is based on an internal test. I consider this white paper as a “FYI”. Read it to get the basic ideas but don’t use the numbers when you are sizing storage for a VDI environment. I have seen totally different number at customer’s sites. Taking the numbers for the white paper as true/guidelines could possibly lead to challenges.

This post isn’t about storage sizing though. It is about creating a good template to base your virtual desktops on. A good template can reduce iops generated by the VM’s which are based on that template.

Below you will find a couple of pointers where to look/do to get a good Windows XP/7 template;

-A lot has been written on how to strip/optimize XP. Use Google and you will get many hits. You can do the same for Windows 7. Basically you want to stop as much services as possible, get rid of as much software as you can so the VM uses less memory, CPU resources and generates less iops. I have seen pretty impressive reductions on a running VM (from 18 to 6).

-A tool to make XP smaller and get rid of unwanted parts is nLite. I haven’t been able to create a good and solid .iso with nLite but I have seen them around. nLite is for Windows XP so far. For Windows 7 there isn’t a version available.

-When you are working with XP, for sure check out this VMware KB article. It discusses the use of the right LSI Storage Adapter Driver when using Composer. Download this driver and import it in your XP. You can make a .flp with the LSI drivers, connect it during the XP installation and hit F6 when it asks for 3rd party SCSI drivers. Not something performance related but it will save you some headaches when you deploy Linked Clones.

Also, Herco van Brug from PQR in The Netherlands wrote a very good article about creating a XP template. His suggestions are based on real life experiences. For sure read this article and implement his suggestions. Most suggestions can be implemented on Windows 7 as well.

My bet is when VMware View will support Windows 7 full stop (no, I can’t mention when) more information about optimizing Windows 7 within a View environment will appear.  I will update this post when I receive more information.