When using Windows as a Remote Desktop server or in VDI solutions, multiple users share the resources of a single server. The less resources each user session consumes, the higher is the density of terminal or VDI sessions supported by a single host. The same is also true when running several Windows copies as a guest system in the virtual environment. If you run a large number of virtual machines with Windows in virtual environment, the optimization of these VMs settings could can significantly reduce the host workload and increase the number of VMs that can be run on a server simultaneously.
To optimize Windows to run in RDS environment, VDI infrastructure or in a virtual machine, you can use free VMware OS Optimization Tool, available on VMware Labs website (https://labs.vmware.com/flings/vmware-os-optimization-tool#summary). By the time this article has been written, version b1084 of November, 2, 2016 has been available, and to run it, you need .Net Framework 3.5.
The tool allows to optimize all supported versions on Windows image (Windows 7, 8.x, 10 and Windows Server 2008, 2012, 2012 R2) to be used in the infrastructure of VMware Horizon View (virtual desktops). However, you can use it to optimize Windows settings in any virtual environment, like Citrix, Microsoft or VMware.
There are some preset optimization templates for different Windows versions in VMware OS Optimization Tool. Each template contains a number of system settings to be used if an OS runs on a virtual machine according to VMware recommendations and best practices. The templates provide disabling the unused services, features and Scheduler tasks, screen savers, sound schemes, visual effects, etc, i.e. all those features that waste the resources of a host system.
In our case, Windows 10 is used as a guest VM OS. Let’s see how to optimize Windows 10 image to improve its performance in the VDI environment. Start VMware OS Optimization Tool and select VMWare\Windows 10 in the list of templates.
This template has a number of settings recommended to be used for Windows 10 when running in a VMware virtualization environment. As an example, let’s show some of the recommended settings from the template:
- Disabling such scheduler tasks as defragmentation, disk check, WinSAT, maps updating, etc.
- Disabling services for Wi-Fi (AllJoyn Router Service), Bluetooth, Fax, Computer Browser, BranchCache, workgroup services, IPv6, Microsoft iSCSI Initiator, SNMP Trap, biometrics, geolocation, EFS etc.
- Disabling auto run for all external drives
- Disabling RSS subscriptions
- Disabling most Windows visual effects, sound schemas, animations and new lock screen
- Uninstalling the modern apps
- Disabling animation and hardware acceleration for MS Office applications
- Reducing of boot time due to the disabling of Active Setup components
- Disabling OneDrive
To analyze the running OS for the compliance of its settings with the template, click Analyze. The report will show whether the current OS settings comply with the template parameters.
It’s up to you to apply all the recommended settings or a part of them. Anyway, you can create your own template based on the existing one and apply it to your VMs with a given Windows version or VM templates. In our example, Windows 10 is almost not optimized, only 5 of 110 recommended settings, and 7 of 137 optional ones are applied.
To optimize Windows, select the settings applicable to your environment and click Optimize. If necessary, you can roll back using History tab.
The tool allows to work not only with the local OS copy, but can also connect to a remote VM using VMware View Connection server.
In particular, when using an existing template by Login VSI, the developers have measured that with these settings a VDI host can run 40% more VMs compared to non-optimized Windows 10.
A template for Windows Server 2008 – 2012 is mostly designed to optimize an OS when using as RD Session Host.