Synopsis: Let's make (some) things a bit faster

Every Citrix admin on every level has had this call in his career: "Citrix is slow."

We can have a lengthy discussion about what that even means. But, for the sake of this article, I'm not going down that rabbit hole. Let's focus on a specific time: the volume of this type of calls tends to increase after something happens. Usually, a migration of some sort. Now again, this type of call can have any number of causes. Let's zoom in on one particular one: the application is actually slower.

The other day, I was on the receiving end of such a call. After investigation, we concluded: the user is correct. When executing a specific task inside the application, that task was much slower on the new Citrix session hosts compared to the old ones. And not just a bit slower, we are talking factor 3x to 6x slower.

We left no stone unturned, searching for a solution or even a reason for this. Nothing we tried worked. Until my colleague, Peter Mommerency, found this site. You can find Peter here.

It all leads to a feature called DFSS (Dynamic Fair Share Scheduling) or TSFairShare. A feature set that was introduced in 2008R2 but got expanded (and turned on by default) in server 2012 and 2016. I have not (yet) verified this with more recent versions. While 2008R2 only had TSFairShare technology for the CPU, later versions included Disk and Network.

In theory, this is a great technology: it fairly shares CPU/disk/network resources. But Citrix also has the technology to do this, including WEM. And not to mention others like Invanti have something to address this too.

In reality, this feature can be a pain. While preventing the CPU from choking, any process trying to do so will slow down. Or, in other words: stretch out over time. Hence, the longer processing times.

To disable this, you will need to set these registry settings:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System]
"EnableCpuQuota"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk]
"EnableFairShare"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\NetFS]
"EnableFairShare"=dword:00000000

Or just download the registry file from my github here.

Stay safe!