DFSS gets disabled automatically

Posted on Updated on

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):
Key: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\SessionManager\DFSS
Named value: EnableDFSS
Possible values:
• 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
Possible values:
• 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:

Figure 1

Figure 2

CU! Pedro.


2 thoughts on “DFSS gets disabled automatically

    Anonymous said:
    29/03/2012 at 18:39

    Why do you DISABLE the CPU Quota registry entry? I find that counter intuitive. I read the article you linked for Win7 – and I didn't get that it should be disabled. I read it such that it should be enabled to coincide/work together with the DFSS entry.How can I verify if DFSS is even working? (today my search led me to your post as a RDP user was maxing out the CPU using excel).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s