Book Review – “Inside Citrix – The FlexCast Management Architecture” by Bas van Kaam

Recently I have been reading the excellent “Inside Citrix – The FlexCast Management Architecture” by Bas van Kaam. I wanted to write a quick post up about this book – as it’s well worth a read for anyone working with Citrix Desktop Virtualization products.,204,203,200_.jpg?resize=221%2C340&ssl=1

You can purchase the book here.

What I really like about this book is how thorough the sections are – no area is left untouched. Each element of the FlexCast infrastructure is covered, including the history behind FMA, and an overview of how FMA is different to IMA. As well as thorough details, there is also an excellent troubleshooting section, which goes through various tools and troubleshooting methods, and various cloud services available to assist.

Also, each section has a “Key Takeaways” area at the end, which provides an overview – highlighting the key elements and considerations covered. This is really useful if you are wanting to improve your knowledge in a particular area. Just by reading this book I’ve already uncovered, and filled, gaps in my own knowledge – this for me is the main reason for reading any technical publication.

Overall, for anyone working with Citrix products this book is an excellent read in my opinion – not only useful for improving your knowledge, but also serving as a reference guide when there are decisions to be made.


Citrix Workspace Environment Management – CPU Management

One of the great features in Citrix Workspace Environment Management (WEM) is the ability to intelligently manage CPU usage. This is especially important in a shared desktop scenario – where the actions of one user could ruin the experience for another.

To test this I am going to demonstrate a user running SuperPI (a CPU stress testing tool) and how this can be managed with WEM.

We start with a Session Host virtual machine of the following specification:


In vSphere this host is limited to 2000mhz of processing power, to provide a limit that won’t be affected by other VMs running on my host, and to provide a CPU benchmark:


Next I logged on a user before any WEM config was applied, and ran SuperPI. Note that the user is able to use all of the processing power available:


This is also confirmed by the CPU utilisation within vSphere – you can see that at the time SuperPI was started the CPU utilisation rocketed to nearly 100%:


I then tested this with a WEM Configuration applied. I started by importing the recommended default settings provided by Citrix with the Software:


With the default settings in place, CPU usage protection applies when the CPU usage goes over 25%:


It’s worth noting when I ran SuperPI without any CPU protection the rest of the sessions felt sluggish – e.g. opening windows, launching notepad took significantly longer than would be considered normal. (Because the CPU was saturated with requests from SuperPI).

Next I ran SuperPI as a user logged on with WEM Configuration applied:


What’s very noticeable now is that the CPU usage of SuperPI varies greatly (before it was a constant 99%) – when launching other applications or items, the utilisation of the CPU by SuperPi drops significantly.

I noticed ranges from 65% down to 30%. This was more noticeable when launching other applications in other sessions – these were not sluggish or slow to respond. Each application launch was accompanied with a noticeable drop in usage by SuperPI to accommodate the new process.

This is the CPU management feature of WEM controlling this application – and making the experience better for all users on the Session Host.





Quick Tip – Change SQL Server Collation

I recently needed to change the SQL Collation to allow for a System Center Configuration Manager install, but I forgot to do this when I built the SQL Server. To change this after installing SQL, run the following command:

setup.exe /q /action=rebuilddatabase /instancename=mssqlserver /sapwd=yourpassword /sqlcollation=SQL_Latin1_General_CP1_CI_AS /sqlsysadminaccounts=domain\administrator

Note: if you need to see the command output, remove the /q. Also – use with caution, I ran this on an empty SQL Server with no databases on it.

For further information see: