CPU scheduling and thread priority

SystemResponsiveness

The MMCSS reservation, and why setting it to 0 does nothing

Last updated

What does SystemResponsiveness do, and should you set it to 0?

SystemResponsiveness tells the Multimedia Class Scheduler Service what percentage of CPU time to keep reserved for low-priority work, so that a multimedia thread cannot starve the rest of the system. The default is 20, meaning 20% is held back. Setting it to 0 is the single most repeated registry tweak on the internet and it does nothing: Microsoft documents that values below 10 are clamped back to 20.

Registry location and values

SystemResponsiveness

Location
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
Value name
SystemResponsiveness
Type
REG_DWORD
Default
20 (0x14)
ValueWhat it does
0-9Clamped to 20 by MMCSS. Setting 0 has exactly the same effect as leaving the default.
10The lowest value that actually takes effect. Reserves 10% of CPU for low-priority tasks.
20The default. Reserves 20%.
100Disables MMCSS entirely. The driver returns STATUS_SERVER_DISABLED.

What Windows actually does with this

MMCSS boosts threads that have registered themselves against a task profile such as Audio, Playback or Games, so that time-sensitive work gets priority. To stop a boosted thread monopolising the machine, MMCSS guarantees a slice of CPU to everything else. SystemResponsiveness is that guarantee, expressed as a percentage. Values that are not evenly divisible by 10 are rounded down to the nearest multiple of 10.

What it affects

Only processes that actually call AvSetMmThreadCharacteristics to join an MMCSS task. Most games do not. Audio applications and video playback do.

Is it worth changing?

Do not set it to 0 -- that is a documented no-op, and every guide recommending it is repeating advice that has never worked. 10 is the lowest value that changes anything, and the honest expectation is a small effect confined to applications that use MMCSS at all. If you have audio crackling under heavy CPU load, this is a legitimate thing to look at. As an FPS tweak it is close to meaningless.

What can go wrong

Low at 10 or 20. At 100 you disable MMCSS entirely, which can cause audio glitching in applications that rely on it -- the opposite of the intended effect.

How to undo it

Set the value back to 20 (decimal), or delete the value and restart. Windows recreates it at the default.

Create a System Restore Point before editing the registry. Every setting on this page is reversible, but a restore point is the difference between undoing one change and reinstalling Windows.

Which Windows versions this applies to

Windows Vista and later. Not present on Windows XP or Server 2003.

SystemResponsiveness: common questions

Every guide says to set it to 0. Are they all wrong?

On this specific point, yes. Microsoft's MMCSS documentation states that values below 10 and above 100 are clamped to 20. A registry editor will happily show 0, which is why the tweak looks like it applied. The scheduler ignores it.

Does lowering it increase FPS?

Only if your game registers with MMCSS, and most do not. Even then it changes how CPU time is shared under contention rather than how fast frames render.

Sources

Related settings