Optimizing the golden image is one of the key best practices when building a virtual desktop environment. Ever since the start of virtualized desktop adoption, optimizations are applied to improve the scalability, stability, and end user experience. It is not just onpremises that require optimization, the cloud will demand more tuning.
But, what is the true value of optimizing and how can we quantitatively evaluate this? And, what will cloud-based desktops and Windows as a Service mean for VDI image optimizers?
Why the need for image optimizations?
A VDI environment is often built on expensive hardware. One of the goals is to fully utilize the hardware and get as many users on a single box as possible.
In essence, a desktop OS is not designed to be virtualized and will contain features that are not required in a VDI environment. For example, what is the benefit of having the Xbox app in a VDI desktop?
The majority of these features are running in the background using services or are triggered by tasks. By removing these unnecessary functionalities from the operating system, the performance footprint will be minimized, resulting in a higher user density.
The optimizations can be split in different categories, including built-in apps (UWP apps), services, scheduled tasks, registry tweaks, and specific commands.
Nowadays, optimizations have to be applied more frequently than with Windows 7, thanks to the release cadence of Windows 10. Each release, like 1803, 1811, and upcoming 1903, will gain and lose features. Besides adding new optimizations, all existing optimizations need to be evaluated if those still apply. This will require more time from the administrator when preparing a new Windows 10 release for their VDI environment.
Collecting all those best practices and the specific optimizations is quite a task, and therefore optimizer tools are created.
Available tools and methodologies
There are multiple tools, guides, and scripts that can help you apply these optimizations. The most common tools are the Citrix Optimizer and VMware OSOT tools. Both provide a user interface where you can apply specific optimizations. By default, templates are delivered for different operating systems like Windows 7, 8, 10, and server operating systems like Windows Server 2008, 2012, and 2016. Citrix Optimizer has, by default, specific templates for the different Windows 10 builds from 1607 to 1809. There is also an additional template for Windows Server 2019, which is not available in VMware OSOT. This shows the Citrix Optimizer is better maintained.
Both provide the ability for you to include and share your own template. Citrix just added this functionality earlier this year, so it is understandable that VMware OSOT has more public templates available, as of writing.
It is easy to integrate both tools in a deployment solution as they have full support for automation.
I often hear a preference for a specific tool and some admin run both tools in their environment. The default set between both optimizers are different as VMware OSOT has quite an aggressive optimization set. It is therefore very important to understand the effect of the applied optimization and find the balance between performance and user experience, and of course avoid breaking applications.
Proof of the benefits
In a recent research of ICT-R, the recently released Citrix Optimizer version 2 was tested.
(ICT-R is a community research platform with a focus on end user computing. I’m a part of it, and you can get involved, too!)
This ICT-R research did a breakdown of the Citrix Optimizer showing which of the default optimizations have the most benefit. The results show, removing the built-in apps, also known as the UWP apps, have the biggest benefit.
Higher is better
This is also reflected in the CPU unitization and on the impact of on storage.
Lower is better
Lower is better
The results show an improvement in performance which reflect to a higher user density. For additional information and the full report, I recommend the following researches on ICT-R: Citrix Optimizer version 2, version 2 with Windows 10 1809, with Windows Server 2019, and our analysis of Windows 10 1809.
The current optimizers all focus on operating systems, but it should not stop there. Every component in a VDI workspace can use optimizations, including the infrastructure, applications, and even internet access (by blocking ads).
It goes even further to different workloads and type of environments. It doesn’t matter if it is an on-premises VDI environment or scalable web-based solution hosted in a cloud provider. Using the right optimizations can improve the user experience and lower the cost, which in a cloud scenario is often a key factor.
A next-level optimizer would contain all the optimization for any type of workload in any type of environment, cloud or on premises.
As I’m very community focused, I would love to see a central shared repository which can be used in all the optimizer tools. The goal of both tools is the same, so why not share the same templates?
Based publications and results of ICT-R, it is proven there is a value of optimizing the operating system in a VDI scenario. The results show an increase the overall capacity mainly caused by removing the built-in apps.
There are multiple tools and scripts out there that can help you select the right optimizations. It is very important to understand the impact of applying these optimizations as it can break applications.
From my perspective, these tools are useful in lab environment, but I still have a preference to create a script for my customers. This way, all the changes are transparent and are not hidden behind a GUI.