콘텐츠로 이동

SystemResponsiveness와 MMCSS: 값 0, 10, 20, 100의 역할

목차

BoosterX에서 이 매개변수는 «SystemResponsiveness» 설정으로 제공됩니다. 값 10은 MMCSS 예약분을 변경하지만, 검증된 시나리오에서 20에 대한 우위는 확인되지 않았습니다; 100은 MMCSS를 비활성화합니다.

SystemResponsiveness는 플라시보가 아닙니다. 이는 Windows가 정규화하여 부팅 시 적용하는 MMCSS 매개변수입니다. 연구된 Windows 11에서 값 0은 동일한 유효 상태 20를 만들었고, 10은 MMCSS 상태를 변경했지만 합성 스케줄러 테스트에서 20에 대한 우위를 보이지 않았습니다.

값 100은 MMCSS를 비활성화했습니다. 스레드 등록이 수행되지 않았고, 스레드는 우선순위 상승을 받지 못했으며, 합성 스케줄링 workload의 p99 지연은 20 대비 약 11-12 ms 증가했습니다. 이러한 결과가 Windows 전체가 60% 느려졌다는 것을 의미하지 않으며, FPS, input latency 또는 실제 사운드의 악화를 증명하지도 않습니다.

실용적인 설정 페이지: «백그라운드 작업을 위한 CPU 예약분».

연구는 세 가지 개별 주장을 검증했습니다:

  1. 0, 10, 20, 100 및 값이 없는 경우가 부팅 후 실제 MMCSS 상태를 변경하는지.
  2. CPU가 완전히 로드된 상태에서 10이 합성 MMCSS workload의 p99 지연에서 20에 대해 실질적으로 유의미한 우위를 제공하는지.
  3. MMCSS가 비활성화된 경우의 결과가 등록된 스레드의 우선순위 상승 상실로 설명되는지.

메커니즘과 합성 지표의 변경이 확인되더라도 사용자 지연, 사운드 또는 게임 성능에 대한 영향을 증명하지는 않습니다.

  • Windows 11 Pro 25H2 x64, build 26200.9168.
  • VMware VM: 4 vCPU, 8 GB RAM, 전원 관리 옵션 Balanced.
  • 주요 상태: 값 없음, 0, 10, 20 및 100.
  • 추가 경계 검증: 1, 9, 11, 19, 21, 99, 101 및 0xFFFFFFFF.
  • 결과는 하나의 가상 머신과 하나의 Windows 빌드에 해당합니다.

빌드는 Microsoft Support의 업데이트 페이지 KB5121003으로 확인됩니다.

Microsoft는 MMCSS를 time-sensitive multimedia workload가 더 낮은 우선순위의 작업을 완전히 밀어내지 않으면서 CPU에 우선적으로 접근할 수 있게 하는 메커니즘으로 설명합니다. 매개변수 SystemResponsiveness은 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile에 저장됩니다.

MMCSS 문서에 명시된 내용:

  • 10의 배수가 아닌 값은 가장 가까운 10 단위로 내림 처리됩니다;
  • 10 미만 및 100 초과 값은 20으로 조정됩니다;
  • 값 100은 MMCSS를 비활성화합니다;
  • Games, Audio, Playback 및 기타 프로필은 MMCSS 작업입니다.

애플리케이션은 AvSetMmThreadCharacteristics를 통해 현재 스레드를 작업에 연결하고, AvSetMmThreadPriority를 통해 상대 우선순위를 변경하며, AvRevertMmThreadCharacteristics를 통해 등록을 해제합니다.

문서는 Registry value가 없는 경우의 동작을 규정하지 않습니다. 아래의 결과는 검증된 빌드에 대한 관찰일 뿐입니다.

주요 지표는 4개의 vCPU가 완전히 로드된 상태에서 Games 프로필의 주기적 작업 시작 지연 p99입니다. 하나의 독립 실행은 별도의 Windows 부팅 후 하나의 상태에 대응했습니다. 각 실행 내에서 2500 주기가 수행되었지만, 이들은 독립적인 반복으로 간주되지 않았습니다.

각 상태에 대해 10회 부팅으로 구성된 두 개의 시리즈가 수행되었습니다. 상태 순서는 균형화되었고, 이상치는 제거되지 않았습니다. 실질적으로 유의미한 임계값은 사전에 1.784 ms 수준으로 설정되었습니다. 20 상태와의 차이에는 대응 bootstrap 95% CI가 사용되었습니다.

시리즈는 별도로 표시됩니다: 두 번째 시리즈에서는 첫 번째에 없던 추가 validation-only ETW 세션이 작동했습니다. 이는 주요 지표의 출처가 아니었지만, 두 번째 블록이 더 잡음이 많았기 때문에 20회 실행의 통합 수치는 데이터의 비균질성을 숨길 수 있었습니다.

별도의 메커니즘 검증은 10, 20, 100 및 값 없음에 대해 각각 4회 부팅을 포함했습니다. 동일한 스레드가 MMCSS 등록 시도 전, 후, 그리고 cleanup 후에 측정되었습니다. 등록 결과, Win32 thread priority 및 ETW에 의한 실제 스케줄러 우선순위가 검증되었습니다. 16회의 주요 실행이 모두 채택되었습니다; 이 시리즈에서 손실된 ETW events 또는 buffers는 없었습니다. 인프라 파일럿은 결과에 포함되지 않았습니다.

기록된 값 부팅 후 관찰된 상태 결과
없음 MMCSS 중지됨, 등록 수행되지 않음, API가 100 반환 이 빌드에 대한 별도 관찰
0, 1, 9 API가 20 반환, MMCSS 작동 20으로 정규화됨
10 API가 10 반환, MMCSS 작동 값이 사용됨
11, 19 API가 10 반환, MMCSS 작동 내림 처리됨
20 API가 20 반환, MMCSS 작동 값이 사용됨
21 API가 20 반환, MMCSS 작동 내림 처리됨
99 API가 90 반환, MMCSS 작동 내림 처리됨
100 MMCSS 중지됨, 등록 수행되지 않음 문서화된 비활성화
101, 0xFFFFFFFF API가 20 반환, MMCSS 작동 20으로 정규화됨

숫자 값의 경우 매핑이 Microsoft 문서와 일치했습니다. 값이 없는 경우 숫자 100이 유효한 MMCSS 등록 없이 반환되었으므로, 이는 작동 중인 MMCSS에 대한 요청 결과가 아니라 API fallback으로 표시됩니다. 이 빌드의 비활성화 상태는 서비스와 등록을 통해 별도로 확인되었지만, 이를 다른 Windows 버전에 자동으로 이전할 수는 없습니다.

새 상태의 안정적인 적용은 재부팅 후에 관찰되었습니다. Registry 변경은 이미 열린 MMCSS handle 또는 현재 부팅의 새 프로세스 상태를 변경하지 않았습니다. 서비스 중지 및 시작의 실패한 시도는 지원되는 적용 방법으로 간주되지 않습니다.

양의 차이는 20 대비 더 높은, 즉 더 나쁜 p99 지연을 의미합니다.

20와의 비교 시리즈 1, 차이 및 95% CI 시리즈 2, 차이 및 95% CI 결론
10 +0.625 ms [-1.111; +2.474] +0.975 ms [-3.579; +5.613] 우위가 확인되지 않음; 동등성은 증명되지 않음
0 +1.267 ms [-0.014; +2.564] -1.902 ms [-4.681; +0.718] 결과가 불확정이며 방향이 서로 다름
100 +10.812 ms [+8.787; +12.915] +12.074 ms [+9.669; +14.127] 합성 proxy에서 실질적으로 유의미한 악화
없음 +11.640 ms [+9.690; +13.480] +12.494 ms [+9.303; +16.208] 합성 proxy에서 실질적으로 유의미한 악화

10는 어느 시리즈에서도 20에 대해 실질적으로 유의미한 우위를 보이지 않았습니다. 두 번째 시리즈의 넓은 구간은 이로움과 해로움 모두를 허용하므로, 그 결과를 동등성의 증거라고 부를 수 없습니다.

상태 등록 MMCSS 상태 단일 스레드의 Win32 priority 단일 스레드의 ETW priority
20 4/4 작동 0 -> 10 -> 0 8 -> 18 -> 8
10 4/4 작동 0 -> 10 -> 0 8 -> 18 -> 8
100 0/4 중지됨 0 -> 0 -> 0 8 -> 8 -> 8
없음 0/4 중지됨 0 -> 0 -> 0 8 -> 8 -> 8

마지막 두 열의 순서는 등록 전, 등록 시도 후, 그리고 cleanup 후의 상태를 의미합니다. Process priority class는 변경되지 않았습니다.

이는 합성 지표 악화의 한 가지 원인을 직접 확인해 줍니다: MMCSS가 비활성화된 경우 테스트 스레드가 동일한 작업을 계속했지만 우선순위 상승을 받지 못했습니다. CPU quota 및 기타 리소스 회계 규칙의 별도 기여는 분리되지 않았습니다.

100와 값 없음은 서비스 상태, 등록 결과 및 스레드 우선순위에서 일치했습니다. 이것이 모든 내부 및 사용자 시나리오에서 이들의 완전한 동등성을 증명하지는 않습니다.

  • SystemResponsiveness은 Windows 부팅 후 관찰되는 MMCSS 상태를 변경합니다.
  • 0는 유효 상태 0을 만들지 않고 20으로 정규화됩니다.
  • 10와 20는 스레드 등록을 허용하며 이 테스트에서 동일한 우선순위 전환을 보입니다.
  • 선택된 p99 지표에서 10가 20에 대해 실질적으로 유의미한 우위를 갖는다는 것은 확인되지 않았습니다.
  • 100는 MMCSS를 비활성화합니다; 검증된 빌드에서 값이 없는 경우에도 동일한 상태가 관찰되었습니다.
  • MMCSS가 비활성화된 경우 테스트 스레드는 우선순위 상승을 받지 못했고, 합성 p99 지연은 두 시리즈 모두에서 악화되었습니다.
  • 10와 20가 모든 MMCSS workload에 대해 동등하다는 것.
  • 10가 FPS를 높이거나 input latency를 줄이거나 사운드를 개선한다는 것.
  • 100가 반드시 audio glitches, 동기화 해제 또는 특정 게임의 문제를 유발한다는 것.
  • 값 없음에 대한 관찰이 다른 Windows 빌드에서도 반복된다는 것.
  • 얻어진 밀리초가 물리적 end-to-end latency라는 것.
  • 가상 머신의 결과가 물리적 PC에 이전된다는 것.

연구는 하나의 VMware VM과 하나의 Windows 빌드에서 수행되었습니다. 합성 프로필 Games는 CPU에 대한 통제된 경쟁을 만들지만, 게임 엔진, 오디오 드라이버, 실제 input pipeline 또는 display scanout을 재현하지는 않습니다.

두 번째 시리즈에서 추가 ETW 세션은 검증용으로만 사용되었지만, 전체 잡음 수준을 변경했을 수 있습니다. 따라서 두 시리즈는 하나의 평가로 통합되지 않았습니다. 메커니즘 검증은 우선순위 상승의 상실을 보여주지만, MMCSS quota 및 accounting policy의 가능한 기여를 분리하지는 않습니다.

물리적 오디오 테스트, FPS, frametime, click-to-photon 및 input latency는 측정되지 않았습니다. 다른 머신이나 빌드에서의 독립적인 반복은 아직 없습니다.

0를 «예약분 0»으로 설정하는 방법으로 사용하지 마십시오: Windows는 이를 20로 조정합니다. 10를 증명된 더 나은 범용 값으로 간주하지 마십시오: 이 VM에서 20에 대한 우위는 확인되지 않았습니다.

100를 사용하거나 «제한 해제»를 위해 값을 삭제하지 마십시오. 검증된 환경에서 이는 MMCSS를 비활성화하고, 스레드에서 우선순위 상승을 박탈하며, 합성 p99 지연을 현저히 악화시켰습니다. 별도의 물리적 테스트 없이는 이 결론을 FPS 또는 사운드의 정확한 예측으로 바꿀 수 없습니다.

일반적인 시스템의 경우 안전한 결론은 Windows의 기본 상태를 유지하는 것으로 제한됩니다. 변경은 사전에 선택된 사용자 지표, 반복된 대응 측정 및 확인된 복원이 있을 때만 정당화됩니다.

간단한 사용자 권장 사항과 정확한 레지스트리 상태는 «SystemResponsiveness» 페이지에 게시되어 있습니다.

각 실험 단계 후 VM은 보호된 초기 상태로 되돌아갔습니다. 제어 부팅은 Registry value 20, 작동 중인 MMCSS, 활성 트레이싱 없음 및 테스트 프로세스 종료를 확인했습니다. 검증 후 재차 복원이 수행되었고, VM은 종료된 상태로 남겨졌습니다.

공개 출처와 문구는 확인되었습니다: 2026-08-25.

연구와 사용된 도구는 BoosterX 개발자에게 속하므로, 개발자는 결과에 직접적인 이해관계가 있습니다. 방법론과 적용 범위는 위에 설명되어 있으며, 결론은 공개 데이터와 나열된 공개 출처를 통해 검증할 수 있습니다. 제품 내 매개변수의 존재는 증거로 사용되지 않았습니다; 10에 대한 불확정 결과와 MMCSS 비활성화의 부정적 결과는 선별 없이 보존되었습니다.

BoosterX Wiki는 독립적인 출판물이며 Microsoft Corporation과 관련이 없고, 승인, 후원 또는 보증을 받지 않았습니다.

  • 2026-09-20: 이해 상충 면책 조항이 연구 및 도구의 귀속을 포함한 완전한 문구로 강화되었습니다.
  • 2026-08-25: 최초 게시; 두 개의 분리된 p99 시리즈, 스레드 우선순위 검증, 오디오 및 게임에 대한 경계, 그리고 확인된 상태 복원이 추가되었습니다.