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)
| Value | What it does |
|---|---|
0-9 | Clamped to 20 by MMCSS. Setting 0 has exactly the same effect as leaving the default. |
10 | The lowest value that actually takes effect. Reserves 10% of CPU for low-priority tasks. |
20 | The default. Reserves 20%. |
100 | Disables 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.