Microsoft implemented Dynamic Fair Share of CPU in RDS 2008R2. This makes sure that you don’t get one greedy user, hogging all the CPU. Citrix Xenapp also has its own policies to divide up CPU time between users and unsurprisingly the two can’t co-exist. Its not a complete shocker, as the Citrix CPU management will not come into force if DFSS is still enabled.In fact, you will get the below error on the server
Log: Application
Source: MetaframeEvents
ID: 3
Description:
The Dynamic Fair Share Scheduling (DFSS) aspect of the Remote Desktop Services role is currently enabled. CPU Utilization Management does not operate correctly when DFSS is enabled, so the Citrix Independent Management Architecture service (IMAService) will not start CPU Utilization Management. To allow IMAService to start CPU Utilization Management, disable DFSS. For instructions on how to disable DFSS, see help for Microsoft Remote Desktop Services or Citrix XenApp.
The is a GPO to disable DFSS, but as this article states, it doesn’t work.To Make sure that DFSS is disabled, you need to set The Group Policy setting Turn off Fair Share CPU Scheduling under the Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections, to “Not Configured”.
Once you have done this, you can set the registry key to disable it. You can either do this manually on the server or use the below PowerShell
$RegKey ="HKLM:\\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System"
Set-ItemProperty -path $RegKey -name "EnableCpuQuota" -value 0
These lines can easily be wrapped in a Invoke-Command or similar and sent to multiple server at once.