My problem with optimizer tools

Applying optimizations within a VDI environment is nowadays the de facto standard. There are different tools available to help you apply optimizations according to best practices. These optimizer tools are useful but also have a downside. In this blog post, I will share my problem with these optimizer tools.

The importance of optimizing

Before we start comparing different options it is import to understand the importance of optimizing a VDI environment. A default installation of an operating system contains roles and features which may not be used. These roles and features may look innocent but may consume resources in the background. This can result in a lower density of your VDI environment which increases the cost per desktop. Besides density, it may also affect overall user experience as applications become slower.

There are different components to optimize, like removing roles or features, disabling services and tasks or applying specific settings in the registry. But also think about antivirus solutions as they can heavily impact performance.

Collecting all these best practices is quite a search but luckily there are various tools available that contains these best practices.

Available optimizer tools: VMware vs Citrix

The two most common tools available today are VMware OSOT and Citrix Optimizer. Both are free and contains default templates for various operating systems. These tools provide a user interface which you can enable or disable specific optimizations.

Of course, both tools provide a way to apply these optimizations automated so it can be integrated with a deployment.

For more information about the difference between both tools, I can recommend the following post by Chris Twiest, also known as Workspace Guru. He has written an excellent blog post comparing both VMware OSOT and Citrix Optimizer.

OPTIMIZERS: VMware VS Citrix!

Understanding what is going on

There is also a downside to all these optimizations as it may break applications or even worse, Windows itself. So checking all the checkboxes comes with a high risk. Therefore it is imported to understands the consequences and impact of the optimization changes.

When applying optimizations to a production environment you should know which registries, services, tasks etc are change. The tools mentioned above provide insight into the changes to be made on the operating system but how are these applied?

I have a problem with tools like VMware OSOT and Citrix Optimizer because it is not clear how the optimization is applied. It states in the user interface it is changing one registry key, but how can you be so sure?

Next to that these tools are biased because both tools are published by vendors which make them in control.

Don’t get me wrong, both tools are great and I also used them in a lab environment. But in the end, I still prefer a PowerShell code which makes it clear how these optimizations are applied.

Alternative solution: We Optimize Tool

Because of my opinion about these optimizer tools, I decided to start a little project to named We Optimize Tool. The goal is to create a tool just like VMware OSOT and Citrix Optimizer with a couple big differences.

  1. Not biased, it is vendor independent;
  2. Web-based configuration;
  3. Generating PowerShell code.

The end-goal is to make this a community driven tool where everybody can contribute to various templates.

Let me show how the tool currently looks like!

Please note: this project is still work in progress. The look and feel may change overrtime.

Just like the other tools the main goals is to provide various templates. When visiting the site you will see them presented in a card style.

When opening a card all the optimizations are shown. Using the simple checkboxes you can include or exclude various items. When your done selecting the desired items you can click the code button in the bottom right corner to generate the PowerShell code. And of course, there is also a dark theme!

  

Using the generate PowerShell code makes it understandable what is changed within the operating system without using a tool. So even if you are not the best PowerShell guy, this still makes you in control!

We Optimize Tool is currently available at w0t.logitblog.com! Please note, it is work in progress.

Conclusion

Applying optimization in a VDI environment is common to get the best user experience. There are various tools available which can help you apply optimizations according to best practices. Be careful with applying these optimizations because it may break applications or even Windows. My preference goes to just PowerShell code so I’m in control of what going to be changed and therefore I created a public tool named We Optimize tool (W0T).

If you have any feedback please leave them in the comments below.

 

Photo by Todd Quackenbush on Unsplash

 

Posted in VDI
  • Martin Zugec

    Hello @ryanbijkerk:disqus ,

    Thanks for a shout out to Citrix Optimizer (even if it’s not 100% positive as we were hoping for 🙂 ).

    I fully understand your concern: “Don’t get me wrong, both tools are great and I also used them in a lab environment. But in the end, I still prefer a PowerShell code which makes it clear how these optimizations are applied.”

    That is exactly why we’ve decided to build Citrix Optimizer on PowerShell. The core engine is CtxOptimizerEngine.ps1, with modules available in the .Modules folder. Complete logic is in 100% readable code.

    The user interface just sits on top of the PowerShell – effectively all it does is generate a custom template (based on your checked/unchecked optimizations) and pass the template to PowerShell engine.

    That being said – I really like the idea of w0t and there is always a room for independent, 3rd party solutions, you’ve done a great job!

    Martin
    Citrix Optimizer team

    • Hi @martinzugec:disqus

      Thank you for reaching out! Yes, I noticed the core of Citrix Optimizer tool is PowerShell based but a “normal” user would not see the code. It is just checking the checkboxes and go. 😉

      Awesome you like the idea of w0t! Really appreciate it!

      Cheers,
      Ryan

  • Andrew Kuehler

    The vendor specific tools have always left a lot to be desired as you don’t know *exactly* what they are doing. I love this tool’s ability to generate powershell code that I can further tweak to be perfect for my environment. I noticed a bunch of items that are in 1703 that are not in 1607. Could most of these still apply to 1607? I run my non-persistent environment almost entirely on Win10 Ent LTSB 2016 which is build 1607. If they are compatible could you copy them over there a well? I really appreciate the work you have already done on this and look forward to seeing where it goes.

    • Hi Andrew,

      Thank you for the feedback! I see, I’m going to fix this in a couple min. In theory you should be able to apply the 1703, but you may encounter some error because of missing services or tasks.

      Cheers,
      Ryan