ATTENTION: this article isn’t 100% correct. Please read my new article about this topic and ignore this one completely. The new article resides here: https://windoh.wordpress.com/2012/04/17/dfss-doesnt-work-as-expected.
Dynamic Fair Share Scheduling (DFSS) is a new feature for a Remote Desktop Session Host (RDSH) (so only on Windows Server 2008 R2) and is enabled by default when the RDSH role is installed. It is possible though to disable DFSS through a group policy setting:
Path: Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections
Setting: Turn off Fair Share CPU Scheduling
If this setting is disabled or not configured, DFSS is enabled; if this setting is enabled though, DFSS is disabled. Don’t get confused! 🙂
What this GP setting does when enabled or disabled, is creating the following setting if it doesn’t already exist (and if a piece of the key path doesn’t exist, that’s created too):
Named value: EnableDFSS
• 0: DFSS is disabled
• 1: DFSS is enabled
If the GP setting is enabled, the named value is 0. If the GP setting is disabled though, DFSS is 1. Of course it’s not necessary to have a GP setting to control DFSS, as you can edit EnableDFSS yourself directly too. If EnableDFSS doesn’t exist, DFSS is enabled. Note: as said in the beginning, the setting only has a meaning when the system is an RDSH.
Anyway, in my case it was all very simple: I wanted DFSS to be enabled and I disabled the GP setting. But… EnableDFSS seemed to be 0! Even when I changed its value to 1 and rebooted the server, EnableDFSS was 0 again. Oh damn! The solution is simple, but not well documented: there has to be another named value in the registry and it has to be 0:
Key: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\SessionManager\Quota System
Named value: EnableCpuQuota
• 0: disabled
• 1: enabled
If the named value isn’t created, this has the same effect as having it the value 1.
So if you want DFSS to be really enabled, you also need to make EnableCpuQuota 0. Easy and simple, but you just need to know it (and if you don’t, there is a big chance DFSS isn’t enabled, even while you think it is, as no errors or warnings are telling you so). It is mentioned on http://technet.microsoft.com/en-us/library/ee808941(WS.10).aspx, although this page is actually meant for Windows 7 (but it worked for me!). I must say it’s weird this TechNet page deals with Windows 7, as AFAIK DFSS is only for RDSHs (so only for WS08R2)…
The next 2 figures show you how things should look like: