Maybe you have noticed it: using an optimizer is all the rage today in the server virtualization landscape. At the moment there are two big companies who both have beta’s of optimizers. These are the Citrix Optimizer and the VMware OS Optimization Tool. Both are free to use and use templates to optimize your machine. In this blog I will test both optimizers and give you the pros and cons. And maybe we will find that there is a third way.
*Versions used in this blog: Citrix Optimizer 18.104.22.168 and VMware OS Optimization Tool b_1093
Because Windows Server OS can be used for many roles and features and can be installed on a virtual or physical server. That’s why Microsoft adds a lot of services and register settings to make it as flexible as possible. But since we’re going to use the OS virtual and as a XenApp host there are a lot of services and settings we don’t need. By disabling all these services and settings we create a faster and leaner XenApp server. Just think about all the wasted resources if you don’t optimize your OS and then deploy 200 XenApp server. Even when you don’t use the virtual machine as a XenApp server but just as a normal virtual application server, optimizing the OS for virtual use will increase performance and will make the server leaner. The same can be said when using a Desktop OS as VDI, like Windows 10. So using an optimizer will improve performance.
The Citrix Optimizer is the newer tool of the two. It is also still in beta just like the VMware tool. You can use the Citrix Optimizer in two ways; through the GUI or through PowerShell. The PowerShell option is great for using the optimizer in your automation workflow. The Citrix Optimizer uses templates to optimize your server. Out of the box it comes with default templates for Windows 7, 8.1, 10, 2008R2, 2012R2 and 2016. At the moment there are no templates for specific functions like application servers or remote desktop servers, etc. Through the GUI you can change settings in the templates by checking boxes. You can save your changes in new templates. The Citrix Optimizer does not have a download section to download more templates and you can’t analyze remote computers through the GUI. The Citrix Optimizer is now integrated into the Citrix Cloud, Smart Checks and with that you are now able to do remote analyzing from the cloud. The description of the Citrix Optimizer from the Citrix website:
“The Citrix Optimizer is a Windows tool to help Citrix administrators optimize various components in their environment, most notably operating system with Virtual Delivery Agent (VDA). The tool is PowerShell based, but also includes a graphical UI.”
Using the Citrix Optimizer:
The VMware OS Optimization Tool or OSOT is a creation from the VMware Flings Labs and is community driven. The VMware OSOT also uses templates to analyze and optimize your virtual machine. Out of the box it comes with an abundance of templates. There are templates for Windows 7, 8.1 ,10 2008-2012, and 2016. For Windows 2016 and Windows 10 there are more kinds of templates for specific functions available like RDSH, Server, LoginVSI and Horizon Air. The GUI also provides you with History, Remote Analysis and Template management options. There is an option to download public templates from the cloud. The VMware OSOT can be used through command line to add it to your automation workflow but does not support PowerShell. The description from the VMware Flings website:
“The VMware OS Optimization Tool helps optimize Windows 7/8/2008/2012/10 systems for use with VMware Horizon View. The optimization tool includes customizable templates to enable or disable Windows system services and features, per VMware recommendations and best practices, across multiple systems. Since most Windows system services are enabled by default, the optimization tool can be used to easily disable unnecessary services and features to improve performance.”
Using the VMware OS Optimization Tool:
So now that we have taken a look at the Optimizers it is time to test them. But how do we test the performance of an optimizer? First off we need to think about which test we can do on a virtual environment that uses Citrix and VMware. So I have come up with two test environments: one Citrix XenApp running on VMware and two Citrix XenDesktops running on VMware. First up are the XenApp tests.
How do we test performance in a XenApp environment? Of course we use Login VSI and Login PI from Login VSI. We can measure the maximum number of users that can work on the XenApp server before performance is degraded. With Login VSI this is called the VSImax. Login VSI also gives us a baseline number. The lower the number, the better the performance. By using Login PI we can measure the applications start and sign in times.
The test VM:
- Windows 2016 server
- 4 vCPU’s at 2,0Ghz Xeon
- 8 GB RAM
- Office 2016
- Citrix VDA 7.15 LTSR
- VMware Esxi 5.5
The test VM was installed from a fresh ISO and all software was installed with Ivanti Automation. After the creation of the test VM, it was cloned two times. So now I had three of the same VM’s. On one of the machines I ran Citrix Optimizer with the default Windows 2016 template. On the second machine I ran VMware OS Optimization tool with the VMware\Windows 2016 – RDSH template. On the third machine I ran no optimizations. Then I started testing with Login VSI in Benchmark mode with a OfficeWorker scenario.
So now the results! First up the VSImax of every machine.
VMware OS Optimization Tool:
Totals Login VSI:
- No Optimizer: 14 VSImax, 1488 Baseline
- Citrix Optimizer: 16 VSImax, 1427 Baseline
- VMware OS Optimization tool: 16 VSImax, 1463 Baseline
This means that after running either optimizers that two extra users can logon to the XenApp server with good performance. So if you need to create an environment for 1000 users you would need 72 XenApp servers (with the same performance) when not running an optimizer, and 63 XenApp servers (with the same performance) with optimizers. Thats a saving of 9 XenApp servers or 9 x 4 vCPU = 36 vCPU and 9 x 8 GB = 72 GB of RAM.
Now the login PI results. Here we looked at the sign in time and the time to open certain applications.
VMware OS Optimization Tool:
Totals Login PI:
- No Optimizer:
- 5,55 Seconds sign on speed.
- 0.50 Second open Paint
- 0.38 Second open Wordpad
- 1,99 Second open PDF
- 4,44 Second open Web
- Citrix Optimizer:
- 5,31 Seconds sign on speed.
- 0.46 Second open Paint
- 0.35 Second open Wordpad
- 1,89 Second open PDF
- 4,07 Second open Web
- VMware OS Optimization tool:
- 5,16 Seconds sign on speed.
- 0.48 Second open Paint
- 0.35 Second open Wordpad
- 2,00 Second open PDF
- 4,02 Second open Web
The results indicate that the VMware OS Optimization tool makes logons faster by 0.39 seconds compared to no optimizer. This is probably because the VM OSOT removes the background image from the sign in and optimizes this process. The Citrix Optimizer shaves off 0.24 seconds from the sign in process. In the application test it’s a mixed result, with both Citrix and VM OSOT performing better than no optimizer and depending on application better than the other optimizer.
For the XenDesktop (VDI) tests I ran into a little snag. I don’t have enough resources at the moment to do a good XenDesktop (VDI) test with Login VSI, so no Login VSI VSImax numbers. But I had a new idea. I wanted to see how much RAM it would save to Optimize your VDI and how fast the logins are. So I created the following three VM’s.
The three test VM’s:
- Windows 10 1703
- 2 vCPU
- 4 GB RAM
- Office 365 pro plus
- Citrix VDA 7.15
- VMware ESXI 5.5
The test VM’s were all created with the same template and the software was installed with Ivanti / RES Automation. The first VM was left untouched, on the second I ran Citrix Optimizer with Default Windows 10 1703 Template and on the third I ran VMware OSOT with the default VMware – Windows 10 template. I did two tests; one, I logged on with a new user without profile and measured the login time from welcome to the appearance of the network symbol. I timed this with screen recording. And two, after I logged on I left the VM alone for 5 minutes to see how much RAM it uses.
The RAM test results
Even after 5 minutes running the disk was still busy with Microsoft Compatibility Telementry:
VMware OS Optimization Tool:
Sign on speeds:
- No Optimizer – 34 Seconds
- Citrix Optimizer – 30 Seconds
- VMware Optimizer – 23 Seconds
If we look at these results it’s clear that Citrix Optimizes the RAM more than VMware OSOT, but VMware OSOT optimizes the logon process more. This is in line with the XenApp results.
The last question that came to my mind was; why not use them both? I do use VMware ESXI and Citrix XenApp/XenDesktop together in the test environment, so why not both optimizers? Well, hold on to your hats because I did some tests with running them both. The first test I ran was Login VSI on XenApp with first running the VMware OSOT with Windows 2016 – RDSH template and then running Citrix Optimizer with Windows 2016 template.
The result is great ! I now reached a new VSImax of 17 users. This means that by running both optimizers on a system of 1000 users we would only need 58 XenApp servers (with the same performance) instead of 62 with only one optimizer.
Login PI test with both optimizers:
Here we see no improvement with the Citrix Optimizer alone.
XenDesktop test with both optimizers:
After the XenApp test I launched the Windows 10 VM, that was Optimized with the default VMware\Windows 10 – Template, and I ran the Citrix Optimizer with Default Windows 10 1703 Template. And I performed the RAM and sign in speed tests again.
Here we see that running both optimizers saves you 100 MB of RAM over running only the VMware OSOT. The sign in speed for the VDI was 25 seconds, so around the same as running only the VMware OSOT.
Both optimizers work as promised. They optimize the system and improve performance. And which one to use is of course up to you. VMware OSOT has more bells and whistles, while Citrix Optimizer has PowerShell. As you can see in the test when using VMware ESXi and Citrix XenApp/XenDesktop together, you could also use both optimizers and get an even better performance. Be mindfully that both products are still Beta, so always test before using in production!
Great RAM and CPU-optimization
Better VSI baseline
Integrated into Citrix Cloud Smart Checks
No way to download and share templates build-in
No remote analyze capabilities in GUI (Is available through Smart Checks)
No templates for different server functions
VMware OS Optimization Tool
Share and download templates from GUI
Templates for different Server function
Faster sign- in speeds
Remote analyzer build- in
No PowerShell but automation through command -line
GUI a bit cluttered
I hope this was informative. For questions or comments you can always give a reaction in the comment section or contact me: