What does it do?
I’ve always found the way operating systems evolve and adapt to be fascinating. They have more functionality with every release, their inner workings are more intelligent, they can automatically adapt to different situations, and are generally a lot more complex than we realize — up to the point where what we think we know about them is mostly wrong (read about lie-to-children opening from my article on PVS).
One of the reasons behind is that modern operating systems can automatically adapt to different situations and use cases — my Surface can easily switch between desktop replacement mode (with external monitor, keyboard, and mouse) to mobile warrior mode, where I use it in portrait mode with touch screen. All these different possibilities are built into the operating system.
But what if that functionality is unwanted? What if I know that my VDI desktop is never going to switch to mobile network, connect to my WiFi network or get plugged into OASIS? My current build of Windows has 247 services and 137 scheduled tasks configured, but less than 50% of them are running. You can keep them enabled — the usual argument is “just in case.” But this is kind of like some whales keeping their pelvis and leg bones — what if one day they decide the whole ocean thing was a stupid idea? Just in case, right? With respect to your operating system, you can decide to remove these vestigial and, as a result make them faster, more secure, and, overall, better performers.
But optimizing operating systems is hard and ungrateful job. How do you know what to disable, if the final configuration will be supported and how to distribute those optimizations? That’s the reason why we decided to create Citrix Optimizer – a new tool to optimize your operating system to work best for desktops and applications delivery. This is mostly done by disabling, tuning or removing parts of operating systems that are not necessary for VDI/RDS scenarios.
How does it work?
Citrix Optimizer (CTXO) uses various templates for instructions of what to do. Right now, all our templates are provided by Citrix and are focused on OS optimizations, but we’re considering other types of templates (more in roadmap section) and hope to introduce support for templates from third parties soon.
Citrix Optimizer currently supports a few different actions/modules that can be defined in templates:
- Removal of built-in Windows applications (UWP)
- Enabling/disabling of Windows Services
- Enabling/disabling of Scheduled Tasks
- Registry changes
- Custom PowerShell code
When you specify a template you want to use, you also need to define the operational mode for CTXO. There are currently three modes supported:
- Analyze – Compare current system with the optimizations defined in a template and report differences. We recommended that you run this mode before making any changes. This mode makes no changes to your current machine.
- Execute – Apply optimizations defined in the template file.
- Rollback – Revert any optimizations (if possible) done using the execute mode. Most changes can be reverted, with the exception of application uninstallations. This mode is currently available in PowerShell mode only – the usage example is included in Get-Help.
Which operating systems are supported?
While we were originally planning to support only Windows Server 2012 R2, Windows 10, and Windows Server 2016, we quickly saw that support for older operating systems was one of the most commonly requested improvements, so we’ve added a lot more. Right now, you can use CTXO with these operating systems:
- Windows 10 build 1607
- Windows 10 build 1703
- Windows 10 build 1709
- Windows 7 SP1
- Windows 8.1
- Windows Server 2008 R2
- Windows Server 2012 R2
- Windows Server 2016 build 1607
Not bad for a first release, right? 😊 That’s because we had a lot of support from CTXO beta testers, but also from different white papers and scripts that Citrix employees have been developing over the years. Citrix Optimizer is tested on base versions of these operating systems and works with PowerShell version 2 or higher.
How can I use it?
Any way you prefer! At its core, CTXO is based on the PowerShell engine, but we wanted to provide various options for execution. Even with this first version, we support multiple methods for using Citrix Optimizer:
- Using PowerShell interface/engine
- Using user interface
- Using Citrix Cloud (Smart Check)
- Using existing ESD (for example SCCM)
- Using third-party solutions (BIS-F)
The built-in user interface also uses this PowerShell engine under the hood. This allows us to quickly integrate with different solutions, without the need to write custom support. Output is reported in both human readable (HTML) and machine readable (XML) format for easier integrations with your current deployment tools.
I’m not going to provide you with step-by-step instructions here, as they are available on the official support site and the user interface is quite intuitive. If you are interested in the PowerShell portion, help is available through Get-Help, including examples. To make your life even easier – the log file generated by the user interface will include a PowerShell syntax to use if you want to automate your optimizations.
Where are these recommendations coming from?
There are certain questions that we hear again and again. For example, how did we come up with these recommendations and why is “XYZ” missing?
First, we wanted to build a solution that would be officially supported by Citrix and Microsoft. That’s why these recommendations are a compilation of best practices from Citrix (based on various white papers or great work done by Dan Feller) and Microsoft (recommended settings for VDI or RDS). My experience tells me that the Pareto principle applies to OS optimizations, as well — you can achieve 80% of the results with 20% of the optimizations, so while there are literally hundreds of different tuning tips and tweaks, we have decided to focus on the most important ones.
The advantage of this approach is that Citrix Optimizer is officially supported tool — and hundreds of our amazing beta testers have confirmed that it works. Our goal was performance without sacrificing stability or user experience — we are trying to build an equivalent of a Class-A German car that you can rely on, instead of building a 1967 Chevy Impala with a JATO engine (I know it’s an urban legend, but still a hilarious story).
If you have any recommendations, don’t hesitate and let us know! We are planning to update these templates on a regular basis and create brand-new templates as well.
But I still want a 1967 Chevy Impala with a jet engine!
One of our plans with Citrix Optimizer, since its early stages, has been to build a community oriented tool and we are still planning to follow up with this plan. If you want to create more aggressive template, we encourage you to do so — and share it with the rest of the community!
In the future, we hope to create a centralized marketplace for these templates and even work on other types of templates (security best practices analyzer for example), but all of this depends on how well the tool is adopted and on its feedback. If you want to see this happening — make sure to tweet and leave us a comment.
Making Citrix Optimizer a community-driven tool is important for me – that’s why we’ve been running an open beta version, released a few new versions during this stage, and followed closely with everyone that provided us with feedback. Even before our official release, there has been amazing feedback from our community — to name just a few, I would suggest reading:
- Image Optimization Tools Comparison Matrix from Dennis Span
- A great blog post from Chris Twiest
- Scalability data from Mark Plettenberg
- This terrific blog post from Christiaan Brinkhoff on using WEM with CTXO
- This powerful BIS-F combo from James Kindon
Where can I…
…download Citrix Optimizer? https://bit.ly/CitrixOptimizer
…let you know how much I like it? Please do! You can find us on any social network, leave a comment under this blog post, or go to https://bit.ly/CitrixOptimizerFeedback
…buy a 1967 Chevy Impala with jet engine? Ask Paul “Hot Rod” Stender
Thanks for support,
Your Citrix Optimizer team
Manoj, Alexey, Luis and Martin
Citrix TechBytes – Created by Citrix Experts, made for Citrix Technologists! Learn from passionate Citrix Experts and gain technical insights into the latest Citrix Technologies.
Want specific TechBytes? Let us know! firstname.lastname@example.org