Windows-Prozessorzeitplanung – Hintergrunddienste und P-/E-Kerne

· · Windows, Performance-Tuning, Scheduling, Audio, CPU

„Wenn ich meine Anwendung aus dem Vordergrund nehme, fängt der Ton an zu knacken.“ „Seit ich Prozessorzeitplanung auf Hintergrunddienste gestellt habe, läuft es stabil.“

Solche Aussagen kursieren unter Windows schon lange. Besonders relevant sind sie bei Audio, Video, Messtechnik, Streaming und residenten Prozessen – also überall dort, wo die kontinuierliche Verarbeitung wichtiger ist als die Benutzeroberfläche.

Diese Einstellung ist jedoch kein magischer Beschleunigungsschalter. Sie erhöht nicht direkt den CPU-Takt, verwandelt Ihre Anwendung nicht in einen Windows-Dienst und fixiert nichts auf P-Kerne. Was sich hauptsächlich ändert, ist, wie CPU-Zeit zwischen der Vordergrundanwendung und den dahinter laufenden Prozessen verteilt wird.

Dieser Artikel ordnet ein, was sich zwischen Programme und Hintergrunddienste ändert, und verbindet dabei die Grundlagen des Windows-Schedulers, das Quantum (die Zeitscheibe), die Bevorzugung des Vordergrunds sowie das Verhalten von CPUs mit P-Kernen und E-Kernen.

1. Zuerst das Fazit

Vorab die wichtigsten Punkte im Überblick.

  • Diese Einstellung ändert direkt nicht die „Leistung“ der CPU, sondern die „Verteilung“ der CPU-Zeit.
  • Programme bevorzugt eher die Vordergrundanwendung, Hintergrunddienste behandelt Vordergrund- und Hintergrundverarbeitung gleichmäßiger.
  • Deshalb kann Hintergrunddienste bei Workloads wirken, bei denen die Fristen der kontinuierlichen Hintergrundverarbeitung wichtiger sind als die Vordergrund-UI.
  • Bei CPUs mit P-Kernen und E-Kernen wird jedoch „auf welchem Kern etwas landet“ heute stärker von QoS, Energierichtlinie, Hybrid-Scheduling und Intel Thread Director bestimmt als von dieser Einstellung allein.
  • Mit anderen Worten: Hintergrunddienste führt nicht einfach dazu, dass „Hintergrundverarbeitung auf den P-Kern“ oder „Dienste auf den E-Kern“ wandern.
  • Stammen Audio-Aussetzer oder Dropouts von DPC/ISR, USB-Energiesparmodi, Treibern, thermischem Throttling oder EcoQoS, behebt diese Einstellung allein sie nicht.

Kurz gesagt: Diese Einstellung ist kein CPU-Frequenzregler, sondern ändert die Regeln der Warteschlange.

1.1 Begriffe, die man vorab kennen sollte

In diesem Artikel tauchen zu Beginn Begriffe auf, deren eigentliche Bedeutung sich erst um Kapitel 6 herum erschließt. Hier vorab eine Übersicht.

Begriff Bedeutung
Quantum (Zeitscheibe) Die Zeiteinheit, für die ein Thread bei einem Durchlauf ununterbrochen ausgeführt werden kann. Windows zählt dabei ein Drittel eines Clock Tick (des Intervalls der Systemtaktunterbrechung) als eine Einheit
ISR / DPC ISR steht für Interrupt Service Routine, DPC für Deferred Procedure Call (verzögerter Prozeduraufruf). Beides sind Mechanismen, mit denen Treiber Interrupts verarbeiten; sie laufen vor gewöhnlichen Threads, weshalb Anwendungen warten müssen, wenn dies zu lange dauert
MMCSS Multimedia Class Scheduler Service. Ein Windows-Dienst, der die Priorität von Threads, die Multimedia-Verarbeitung durchführen und sich selbst registrieren, gemäß den Registrierungseinstellungen anhebt
QoS Quality of Service. Die einem Thread zugewiesene „Klassifizierung von Leistung und Energieeffizienz“. Eine von der Priorität unabhängige Achse, die beeinflusst, welche Art von Kern gewählt wird und wie die CPU-Energie verwaltet wird
EcoQoS Eine auf Energiesparen ausgerichtete QoS-Klassifizierung. Anwendungen setzen sie ausdrücklich über SetProcessInformation / SetThreadInformation
Underrun Wenn bei der Audioverarbeitung und Ähnlichem der Puffer bis zur Frist nicht gefüllt werden kann und die Daten ausgehen. Hörbar als Knacken oder Dropout
Core Parking Ein Energiesparmechanismus, der ungenutzte logische Prozessoren bei geringer Last schlafen legt
C-State Die Tiefe des Leerlaufzustands der CPU. Je tiefer, desto sparsamer, aber desto länger dauert die Rückkehr
P-Kern / E-Kern Ein leistungsorientierter Kern beziehungsweise ein energieeffizienzorientierter Kern. CPU-Konfigurationen mit beiden Kerntypen werden als hybrid (heterogen) bezeichnet
Intel Thread Director Ein Mechanismus, mit dem Intels Hybrid-CPUs dem Betriebssystem Hinweise zu den Ausführungseigenschaften eines Threads geben. Windows 11 nutzt ihn bei der Kernauswahl

2. Was ändert diese Einstellung eigentlich?

Die Option Prozessorzeitplanung im Einstellungsbildschirm ist eine der seit Langem bestehenden Scheduling-Richtlinien von Windows. Intern ist sie mit Win32PrioritySeparation verknüpft – eine Einstellung mit einer ziemlich langen Geschichte.

Zunächst die Grundlagen, wie Windows die CPU nutzt.

  • Der Scheduler wählt zuerst unter den ausführbaren Threads denjenigen mit der höchsten Priorität.
  • Bei gleicher Priorität werden sie der Reihe nach für jeweils eine feste Zeit ausgeführt.
  • Diese „feste Zeit“ ist das Quantum (die Zeitscheibe).
janeinAusführbare ThreadsScheduler wählt den Thread mit höchster Priorität1 Quantum lang ausführenGibt es wartende Threads gleicher Priorität?Kontextwechsel

Was Prozessorzeitplanung hauptsächlich beeinflusst, ist die Verteilung dieses Quantums und wie stark der Vordergrund bevorzugt wird.

„Vordergrund“ meint hier die Anwendung, mit der der Benutzer gerade interagiert. Umgekehrt tendieren Prozesse, die nach hinten gerückt sind, Worker in anderen Prozessen, Windows-Dienste, Hilfsprozesse und residente Verarbeitung eher zur Hintergrundseite.

Wichtig ist: Wählt man Hintergrunddienste, wird die eigene Anwendung dadurch nicht zu einem Windows-Dienst. Was sich ändert, ist nicht die Kategorie namens „Dienst“, sondern die CPU-Verteilungsregeln zwischen Vordergrund und Hintergrund. Der Name ist hier ziemlich irreführend.

2.1 Wie man zum Einstellungsbildschirm gelangt

Diese Einstellung liegt ziemlich tief in der Systemsteuerung verborgen. Es gibt zwei Wege dorthin.

  • Über Win + R und Ausführen von SystemPropertiesPerformance.exe öffnet sich direkt „Leistungsoptionen“. Auf der Registerkarte „Erweitert“ befindet sich dort Prozessorzeitplanung.
  • Manuell folgt man dem Pfad „Systemeigenschaften“ > Registerkarte „Erweitert“ > „Leistung“ > „Einstellungen“ > Registerkarte „Erweitert“. „Systemeigenschaften“ selbst lässt sich mit sysdm.cpl öffnen.

Die getroffene Auswahl wird in folgenden Registrierungswert geschrieben.

Element Inhalt
Schlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl
Wertname Win32PrioritySeparation
Typ REG_DWORD
Bereich 0x00x3F

Möchte man nur den aktuellen Wert prüfen, lässt sich das mit PowerShell auslesen. Um die Einstellung zurücksetzen zu können, ist es sicherer, den Wert vor der Änderung zu notieren.

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl' -Name 'Win32PrioritySeparation'

2.2 Betroffene Windows-Versionen und die Bedeutung der Werte

Die Option Prozessorzeitplanung in den „Leistungsoptionen“ gibt es sowohl in Windows-10-/Windows-11-Clients als auch in Windows Server. Verwirrend an dieser Einstellung ist jedoch, dass derselbe Wert bei Client und Server unterschiedlich interpretiert wird.

Microsofts Erläuterung zur Registrierung beschreibt Win32PrioritySeparation als eine Bitmaske, bei der 6 Bit in drei Zweiergruppen (AABBCC) unterteilt sind.

  • Obere 2 Bit: ob das Quantum eher lang oder kurz ist
  • Mittlere 2 Bit: ob das Quantum variabel oder fest ist
  • Untere 2 Bit: um das Wievielfache der Vordergrund gegenüber dem Hintergrund bevorzugt wird (wirkt nur bei variablem Quantum)

Darauf aufbauend schreibt die jeweilige UI-Auswahl folgende Werte (die damalige UI-Beschriftung lautete Applications und Background services, was den heutigen Optionen Programme und Hintergrunddienste entspricht).

UI-Auswahl Geschriebener Wert Bedeutung
Programme 100110 (0x26) Eher kurzes, variables Quantum. Vordergrund wird dreifach gegenüber Hintergrund bevorzugt
Hintergrunddienste 011000 (0x18) Eher langes, festes Quantum. Vordergrund und Hintergrund werden gleich behandelt

Geht man bei den Zahlen noch einen Schritt weiter, beschreibt Microsofts Erläuterungsartikel für 0x26 ein Quantum von 18 für den Vordergrund und 6 für den Hintergrund, bei 0x18 dagegen 36 für beide. Da das Quantum in Drittel-Clock-Tick-Einheiten gezählt wird, entspricht das in Ticks 6 Tick Vordergrund / 2 Tick Hintergrund beziehungsweise 12 Tick für beide. Derselbe Artikel nennt als Beispiel einen Clock Tick von 15,625 Millisekunden auf einer x86-Mehrprozessormaschine; in diesem Fall ergibt sich der Unterschied zwischen „der Vordergrund läuft bis zu rund 94 Millisekunden am Stück“ und „sowohl Vordergrund als auch Hintergrund laufen jeweils rund 188 Millisekunden am Stück“.

Mit anderen Worten: Bei Hintergrunddienste ist die Laufzeit pro Durchlauf zwar länger, aber der Vordergrund wird nicht bevorzugt. Die Hintergrundverarbeitung gerät seltener in den Zustand, „nie an der Reihe zu sein“.

Auch bei der Interpretation dieses Standardwerts gibt es Unterschiede zwischen den Betriebssystemen. Laut Microsofts Beschreibung zu Win32_OperatingSystem verwendet der Client standardmäßig ein variables Quantum mit längerem Quantum für die Vordergrundanwendung, Windows Server dagegen standardmäßig ein festes Quantum. Auch die Erläuterung zur Registrierung schreibt, dass derselbe Standardwert 0x2 beim Client „kurz, variabel, Vordergrund dreifach“ und beim Server „lang, fest, gleichmäßig“ bedeutet. Deshalb ist der Server von vornherein eher auf das eingestellt, was Hintergrunddienste entspricht.

Die hier genannten konkreten Zahlen beruhen auf Microsoft-Dokumentation und Erläuterungsartikeln aus der Generation Windows 2000 / XP. Die Zuordnung zwischen Registrierungswert und UI ist bis heute dieselbe, aber die tatsächliche Handhabung des Quantums kann sich je nach Windows-Version ändern – lesen Sie die Zahlen daher als Richtwert dafür, „in welcher Größenordnung“ sich die Sache bewegt.

3. Was sich zwischen Programme und Hintergrunddienste ändert

Am einfachsten lässt sich der Unterschied in einer Tabelle vergleichen.

Aspekt Programme Hintergrunddienste
Grundgedanke Erleichtert es, die Vordergrundanwendung reaktionsfreudig zu machen Behandelt Vordergrund- und Hintergrundverarbeitung gleichmäßiger
Bevorzugung des Vordergrunds Stark Geringer
Bei CPU-Auslastung Die UI bleibt tendenziell angenehm bedienbar Kontinuierliche Hintergrundverarbeitung wird seltener verdrängt
Geeignet für Interaktionszentrierte Desktop-Nutzung Dienste, Aufnahme, Kodierung, kontinuierliche Verarbeitung
Typischer Nebeneffekt Hintergrundverarbeitung verpasst leichter Fristen Die Reaktionsfreudigkeit der Vordergrund-UI kann etwas nachlassen

Client-Windows ist grundsätzlich darauf ausgelegt, die Vordergrundanwendung angenehm laufen zu lassen. Für gewöhnliche Desktop-Nutzung ist Programme daher naheliegend.

Es gibt jedoch Fälle, in denen sich das Bild ändert.

  • Audioverarbeitung, die im Hintergrund ständig Puffer füllt
  • Aufnahme oder Analyse, die zwar eine leichte UI hat, aber kontinuierlich auf einem anderen Thread bzw. Prozess läuft
  • Fälle, in denen man die Fristen der Hintergrundverarbeitung einhalten möchte, obwohl ein Browser oder eine IDE im Vordergrund läuft
  • Server-, dienst- oder residenzorientierte Workloads

In solchen Fällen ist es stabiler, wenn die Hintergrundverarbeitung die CPU zurückerobern kann, statt nur den Vordergrund stark zu bevorzugen. In diesem Sinn kann Hintergrunddienste sinnvoll sein.

4. Warum das bei Audio und kontinuierlicher Verarbeitung wirken kann

Am Beispiel von Audio-Aussetzern und Dropouts lässt sich das gut nachvollziehen.

Bei der Audioverarbeitung reicht es nicht, „im Durchschnitt schnell“ zu sein. Alle paar Millisekunden – oder in noch kürzeren Abständen – muss der Puffer bis zum nötigen Zeitpunkt gefüllt werden. Auch wenn die durchschnittliche CPU-Auslastung niedrig ist, kommt es zu Aussetzern, wenn der Thread ausgerechnet in diesem Moment nicht laufen kann.

Ein konkretes Beispiel:

  • Im Vordergrund läuft ein Browser, die UI einer DAW oder eine andere Anwendung
  • Im Hintergrund läuft ein Audioverarbeitungs-Thread in festem Zyklus und liefert Puffer
  • Der Audioverarbeitungs-Thread hat keine übermäßig hohe Priorität, und MMCSS oder QoS werden nicht ausreichend genutzt
  • Die CPU ist einigermaßen ausgelastet

Bei Programme läuft die Vordergrundanwendung tendenziell länger am Stück, sodass die Hintergrund-Audioverarbeitung „im Durchschnitt kein Problem hat, aber genau in diesem Moment zu spät kommt“. Wiederholt sich das, entsteht ein Underrun – das Knacken.

Wechselt man dagegen zu Hintergrunddienste, kann die kontinuierliche Hintergrundverarbeitung die CPU leichter zurückerobern, wodurch Fristen seltener verpasst werden.

Wenn diese Einstellung wirkt, geschieht also nicht „die CPU wurde schneller“, sondern:

  • die Bevorzugung der Vordergrundanwendung wird etwas schwächer
  • die Anzahl und der Zeitpunkt der Gelegenheiten, in denen die Hintergrundverarbeitung eingreifen kann, verbessern sich
  • dadurch sinken verpasste Fristen (Deadline Misses)

5. Das Prinzip – Quantum und die Bevorzugung des Vordergrunds

Betrachtet man das etwas tiefer auf technischer Ebene, sieht der Wirkmechanismus so aus.

5.1 Bei langem Quantum warten gleich priorisierte Konkurrenten länger

Konkurrieren mehrere Threads in derselben Prioritätsklasse, gilt: Je länger das Quantum, das ein Thread erhält, desto länger müssen die anderen entsprechend warten.

Bei einer Einstellung, die den Vordergrund bevorzugt, läuft die Vordergrundseite tendenziell länger am Stück. Die Hintergrundseite mit ähnlicher Priorität bekommt dadurch entsprechend häufiger ein „jetzt nicht“ zu hören.

Bei Verarbeitungen, die wenn auch nur ein bisschen, so doch regelmäßig laufen wollen – Audio, Video, periodische Messung, Polling, Überwachung –, macht sich dieser Unterschied bemerkbar.

5.2 Windows kümmert sich auf mehrere Arten um den Vordergrund

Windows achtet grundsätzlich stark auf den Vordergrund. Typische Beispiele sind:

  • Bevorzugung des Prozesses, der in den Vordergrund gerückt ist
  • Bevorzugung des Threads, dessen Fenster Eingaben erhält
  • Dynamische Prioritätsanhebungen für Threads nach abgeschlossenem I/O

Das bedeutet: Allein eine Anwendung aus dem Vordergrund zu nehmen, ändert bereits ihre Behandlung durch den Scheduler. Man versteht Hintergrunddienste am leichtesten so, dass es unter diesen Vordergrundbevorzugungen speziell die Schieflage in der Verteilung der CPU-Zeit verringert.

5.3 „Die CPU nicht faulenzen lassen“ ist halb richtig, halb daneben

Die Formulierung „die CPU nicht faulenzen lassen“ ergibt gefühlsmäßig Sinn. In dem Sinn, dass Hintergrundverarbeitung seltener zurückgestellt wird, stimmt sie tatsächlich.

Technisch genauer betrachtet ändert sich jedoch weniger die Leerlaufsteuerung oder die Frequenz der CPU selbst als vielmehr die Reihenfolge und Dauer, in der Threads laufen.

Diese Einstellung ist deshalb:

  • kein Regler für Turbo Boost
  • kein Schalter für C-States
  • keine direkte Änderung des Core Parking
  • keine Fixierung auf P-Kerne

6. Wie wirkt sich das auf CPUs mit P-Kernen und E-Kernen aus?

Hier entstehen die meisten Missverständnisse.

Hintergrunddienste bedeutet nicht, dass Windows einfach entscheidet „Hintergrundverarbeitung, also E-Kern“ oder „Vordergrund, also P-Kern“. Auf modernem Windows – insbesondere Windows 11 auf Hybrid-CPUs – ist die Auswahl zwischen P-Kern und E-Kern deutlich mehrstufiger.

6.1 Ähnliche Namen, aber unterschiedliche Dinge

Zunächst gibt es zwei unterschiedliche Dinge mit ähnlichen Namen.

  1. Hintergrunddienste unter Prozessorzeitplanung
    • Eine Einstellung in der alten Benutzeroberfläche
    • Wirkt hauptsächlich auf die Verteilung der CPU-Zeit zwischen Vordergrund und Hintergrund
    • Gehört zur Familie von Quantum und Foreground-Boost
  2. QoS-Stufen wie Utility / Eco / Low
    • Moderne Windows-Klassifizierung von Energie und Leistung
    • Wirkt auch auf die Kernauswahl und die Frequenzsteuerung
    • Hängt direkt mit dem Verhalten von P-Kernen und E-Kernen zusammen

Diese beiden sind nicht dasselbe.

6.2 QoS und Sichtbarkeit unter Windows 11

Auf modernem Windows zählt neben der Priorität auch QoS. Insbesondere bei heterogenen Prozessoren – also Konfigurationen mit P-Kernen und E-Kernen – beeinflusst QoS, welche Art von Kern bevorzugt wird.

Die grobe Klassifizierung unter Windows 11 sieht so aus.

Zustand / Klasse QoS-Bild Auswirkung auf P-/E-Kerne Wo dokumentiert
Vordergrund und fokussierte Fensteranwendung High Eher leistungsorientiert QoS-Klassifizierungstabelle, „In Focus“
Sichtbar, aber nicht fokussiert Medium Dazwischen QoS-Klassifizierungstabelle, „Visible“
Minimiert / vollständig verdeckt Low Im Batteriebetrieb eher Effizienzkern QoS-Klassifizierungstabelle, „Minimized, or Fully Occluded“
Hintergrunddienste Utility Im Batteriebetrieb eher Effizienzkerne QoS-Stufentabelle, „Utility“
Explizit mit EcoQoS markierte Verarbeitung Eco Eher Effizienzkerne QoS-Stufentabelle, „Eco“
Von MMCSS für Batch-Pufferung markierte Threads Media Effizienzorientiert, senkt die Frequenz QoS-Stufentabelle, „Media“
Multimedia-Thread mit Audio-Frist Deadline Eher leistungsorientiert QoS-Stufentabelle, „Deadline“

Diese Tabelle fasst zwei Tabellen aus dem Microsoft-Learn-Artikel „Quality of Service“ neu zusammen: die Liste der QoS-Stufen (High / Medium / Low / Utility / Eco / Media / Deadline) und die QoS-Klassifizierung, die den QoS aus dem Anzeigezustand eines Fensters ableitet. Sie ist keine aus Beobachtungen abgeleitete Klassifizierung. Dasselbe Dokument enthält außerdem die Regel, dass ein Prozess, der als hörbar erkannt wird, als High behandelt wird, sowie die Erläuterung, dass Threads, die zu keiner der obigen Kategorien passen, automatisch anhand von Heuristiken wie der Priorität zugewiesen werden.

Ein weiterer, für Messungen wichtiger Punkt: Im Batteriebetrieb kann die QoS der Vordergrundanwendung auf Medium herabgesetzt werden, wenn längere Zeit keine Benutzereingabe erfolgt. Die Dokumentation weist ausdrücklich darauf hin, dass man diese Funktion bei Leistungsmessungen im Batteriebetrieb deaktivieren sollte, und beschreibt dafür das Setzen von DisableUserPresenceQos (REG_DWORD) auf 1 unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerThrottling. Zeigt sich bei automatisierten Tests ohne Eingabe „nur im Batteriebetrieb langsam“, lohnt es sich, zuerst hier nachzusehen.

Wichtig ist hier, dass sich die QoS bereits durch das bloße Minimieren ändern kann. Auf einem Hybrid-CPU-Notebook kommt es also ganz gewöhnlich zu Folgendem:

  • Die Anwendung verlässt den Vordergrund
  • Sie wird zusätzlich minimiert
  • Dadurch sinkt die QoS
  • Sie wird eher auf einem Effizienzkern platziert
  • Das Nutzungsgefühl oder die Fristen verschlechtern sich

6.3 Thread Director und Hybrid-Scheduling

Bei Intels Hybrid-CPUs der 12. Generation und später liefert Intel Thread Director dem Betriebssystem Hinweise. Windows 11 nutzt diese, um die Zuweisung von P-Kernen und E-Kernen intelligenter zu treffen.

Darüber hinaus verfügt Windows über Richtlinien für heterogenes Scheduling.

  • SchedulingPolicy
  • ShortSchedulingPolicy
  • ShortThreadRuntimeThreshold

Belässt man diese auf Automatic, entscheidet das Betriebssystem anhand von QoS und Systemkonfiguration. Dahinter arbeiten außerdem die Core-Parking-Engine und die Performance-State-Engine der Prozessorenergieverwaltung.

Das Gesamtbild lässt sich grob so erfassen.

ThreadPriorität / dynamische PrioritätQoS (High / Medium / Low / Utility / Eco / Deadline)Sichtbarkeit / Hörbarkeit / EingabezustandHybrid-Scheduling-RichtlinieSCHEDPOLICY / SHORTSCHEDPOLICYIntel-Thread-Director-HinweiseWindows 11 auf Intel-Hybrid-CPUWindows-Scheduler + Processor Power ManagementP-Kern / E-Kern und Frequenz werden festgelegt

7. Wann es wirkt und wann nicht

In der Praxis ist es effizienter, Fälle zu unterscheiden, in denen die Einstellung eher wirkt, von Fällen, die ein anderes Problem darstellen.

7.1 Fälle, in denen es eher wirkt

In folgenden Situationen kann Hintergrunddienste eine sinnvolle Maßnahme sein.

  • Nur die kontinuierliche Hintergrundverarbeitung wird instabil, wenn man den Fokus auf eine Vordergrundanwendung legt
  • Die CPU-Auslastung ist nicht ausgereizt, aber nur periodische Verarbeitung verpasst ihre Fristen
  • Die kritische Verarbeitung liegt in einer Legacy-Anwendung, einem Hilfsprozess oder Worker-Thread, und MMCSS oder QoS werden nicht ausreichend genutzt
  • Dienste oder residente Verarbeitung stehen im Mittelpunkt, und die Stabilität der Hintergrundverarbeitung ist wichtiger als die Reaktionsfreudigkeit der Vordergrund-UI

7.2 Fälle, in denen es kaum wirkt oder ein anderes Problem vorliegt

Umgekehrt gibt es Probleme, für die diese Einstellung allein nicht ausreicht.

  • Große DPC-/ISR-Verzögerungen
  • Fehler im USB-Controller oder Audiotreiber
  • Auswirkungen von USB Selective Suspend oder Geräte-Energiesparfunktionen
  • Thermisches Throttling
  • Auswirkungen von Akkusparmodus, Power Throttling oder EcoQoS
  • Zu kleine Puffergröße
  • Die Anwendung nutzt MMCSS/Deadline bereits korrekt, und das Problem liegt woanders

Besonders bei Windows-11-Notebooks mit Hybrid-CPU wirken sich Änderungen der Sichtbarkeit und der QoS stark aus. Wird etwas nur beim Minimieren oder nur im Batteriebetrieb langsamer, liegt man mit einem Verdacht auf QoS/Energieverwaltung eher richtig als mit einem Verdacht auf Prozessorzeitplanung.

8. Vorgehen in der Praxis

Für eine tatsächliche Eingrenzung ist folgende Reihenfolge übersichtlich.

  1. Bedingungen festhalten
    • Netzbetrieb oder Akku
    • Energiemodus
    • Puffergröße
    • Zustand: Vordergrund / sichtbar / minimiert
  2. Programme und Hintergrunddienste unter gleichen Bedingungen vergleichen
    • Nicht nur das Gefühl, sondern Dropout-Anzahl, Glitch-Anzahl und Verarbeitungsverzögerung protokollieren
  3. Bei Windows 11 / Hybrid-CPU die QoS-Seite verdächtigen
    • Verschlechtert es sich nur beim Minimieren?
    • Ändert sich etwas im hörbaren Zustand?
    • Verschlechtert es sich nur im Batteriebetrieb?
  4. Bei Audio oder Video zuerst MMCSS prüfen
    • Teilen die wichtigen Threads Windows mit, „dies hat eine wichtige Frist“?
  5. Bleibt das Problem bestehen, DPC/ISR/USB/Treiber untersuchen
    • Hier geht es bereits um Dinge, die vor dem Scheduler liegen

8.1 Was und wie man jeweils prüft

Damit es nicht bei „verdächtigen“ bleibt, hier konkrete Mittel zur Überprüfung.

Was man prüfen möchte Konkrete Vorgehensweise
Die aktuelle Einstellung der Prozessorzeitplanung SystemPropertiesPerformance.exe öffnen oder mit dem PowerShell-Befehl aus 2.1 Win32PrioritySeparation auslesen
Netz-/Akkubetrieb und Energieplan Mit powercfg /getactivescheme den aktiven Energieplan und mit powercfg /list die Liste prüfen und protokollieren
Ob ein Prozess energiegedrosselt wird Im Task-Manager auf der Registerkarte „Details“ mit Rechtsklick auf die Spaltenüberschriften die Spalte für Energiedrosselung hinzufügen. Unter Windows 11 zeigt außerdem der Statusbereich der Registerkarte „Prozesse“ den Effizienzmodus an
Ob die QoS der Vordergrundanwendung im Batteriebetrieb sinkt DisableUserPresenceQos aus 6.2 setzen und vergleichen, ob sich das Verhalten ändert
Ob wichtige Threads MMCSS nutzen können Bei eigenem Code prüfen, ob AvSetMmThreadCharacteristics / AvSetMmMaxThreadCharacteristics aufgerufen wird und ob das zurückgegebene Handle gültig ist. Ist das der Fall, wird die Priorität entsprechend der Scheduling-Kategorie angehoben, was sich in der Thread-Liste von Process Explorer an der Priorität ablesen lässt (High: 23–26, Medium: 16–22, Low: 8–15)
Aufgabendefinitionen von MMCSS Unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks finden sich Aufgaben wie Audio, Pro Audio, Capture und Playback, bei denen sich Scheduling Category und Priority prüfen lassen
DPC-/ISR-Verzögerung Mit wpr -start GeneralProfile -filemode eine Ablaufverfolgung starten, mit wpr -stop trace.etl beenden und anschließend in WPA im DPC/ISR-Diagramm die Zeit pro Modul ansehen
Auf welchem Kern ein Thread lief Dieselbe Ablaufverfolgung in WPA unter CPU Usage (Precise) öffnen und die Spalte des ausgeführten logischen Prozessors betrachten. Da die Zuordnung von logischer Prozessornummer zu P-Kern/E-Kern vom Gerät abhängt, erstellt man zuerst mit einem Tool wie Sysinternals Coreinfo eine Zuordnungstabelle. So lässt sich vergleichen, ob sich die verwendeten Nummern zwischen Vordergrund und Minimiert-Zustand ändern

wpr ist der Befehl des Windows Performance Recorder, der im Windows ADK enthalten ist. Er wird über eine Konsole mit Administratorrechten ausgeführt.

In der Praxis ist „wurde die Frist eingehalten“ wichtiger als die durchschnittliche CPU-Auslastung. Das ist ein ziemlich zentraler Punkt.

9. Zusammenfassung

Kurz zusammengefasst, was passiert, wenn man Prozessorzeitplanung auf Hintergrunddienste stellt:

  • Es ändert sich nicht die Geschwindigkeit der CPU selbst, sondern die Verteilung der CPU-Zeit zwischen Vordergrund und Hintergrund
  • Programme macht die Vordergrundanwendung tendenziell angenehmer
  • Hintergrunddienste macht die kontinuierliche Hintergrundverarbeitung widerstandsfähiger gegen Verdrängung
  • Deshalb kann es in Fällen wirken, in denen Hintergrundfristen wichtig sind – Audio, Video, Aufnahme, Überwachung, residente Verarbeitung
  • Bei CPUs mit P-Kernen und E-Kernen wird die tatsächliche Kernplatzierung jedoch auch stark von QoS, Energierichtlinie, Hybrid-Scheduling und Thread Director bestimmt
  • Auf modernem Windows ist die natürliche Sichtweise daher: Diese Einstellung kann wirken, ist aber keine alleinige Hauptrolle

Kurz gesagt: Das ist kein Regler, der die Leistung der CPU erhöht, sondern ein Regler, der ändert, wie die Arbeit verteilt wird.

Priorisiert man die Reaktionsfreudigkeit der Vordergrundanwendung oder die Einhaltung der Fristen der kontinuierlichen Hintergrundverarbeitung? Stellt man sich das als Einstellung vor, die diese Balance etwas in Richtung Hintergrund verschiebt, leuchtet es ziemlich ein.

Und im Zeitalter der Hybrid-CPU kommen darüber hinaus noch die Schichten von QoS und P-/E-Kern-Auswahl hinzu. Bezieht man das alles mit ein, wird deutlich, „warum es manchmal wirkt“ und „warum es manchmal nicht wirkt“.

10. Quellen

Aktuelle Artikel mit denselben Schlagwörtern führen zu verwandten Themen weiter.

Diese Seiten ordnen den Artikel in einen größeren Leistungs- und Entscheidungskontext ein.

Dieser Artikel ist direkt mit den folgenden Leistungen verbunden.

Fehleruntersuchung und Ursachenanalyse

Der Ablauf, herauszufinden, ob Audio-Aussetzer, Dropouts oder instabile Hintergrundverarbeitung sich mit der `Prozessorzeitplanung` ändern oder stattdessen auf DPC/ISR oder Treiber zurückzuführen sind, lässt sich gut als Fehleruntersuchung und Ursachenanalyse durchführen.

Häufige Fragen

Fragen, die in Beratungen zu diesem Artikelthema häufig gestellt werden.

Was ändert sich, wenn ich die „Prozessorzeitplanung“ auf „Hintergrunddienste“ stelle?
Es ändert sich nicht die Geschwindigkeit oder der Takt der CPU, sondern die Art, wie CPU-Zeit zwischen der Anwendung im Vordergrund und den dahinter laufenden Prozessen verteilt wird. Intern ist die Einstellung mit Win32PrioritySeparation verknüpft und wirkt auf die Verteilung des Quantums (der Zeitscheibe) und darauf, wie stark der Vordergrund bevorzugt wird. „Programme“ bevorzugt eher die Vordergrundanwendung, „Hintergrunddienste“ behandelt Vordergrund und Hintergrund gleichmäßiger. Diese Einstellung verwandelt Ihre eigene Anwendung dabei nicht in einen Windows-Dienst.
Warum kann „Hintergrunddienste“ Audio-Aussetzer beheben?
Audioverarbeitung reicht es nicht, im Durchschnitt schnell zu sein – die Pufferung muss alle paar Millisekunden eine feste Frist einhalten. Bei der Einstellung „Programme“ läuft die Vordergrundanwendung tendenziell länger am Stück, sodass die Hintergrund-Audioverarbeitung im Schnitt zwar unproblematisch ist, aber genau in dem einen Moment zu spät kommt und dadurch ein Underrun entsteht. Wechselt man zu „Hintergrunddienste“, kann die dauerhaft laufende Hintergrundverarbeitung die CPU leichter zurückerobern, wodurch verpasste Fristen seltener werden. DPC-/ISR-Verzögerungen, USB-Energiesparmodi, Treiberfehler, thermisches Throttling oder Probleme durch EcoQoS werden dadurch allerdings nicht behoben.
Läuft die Hintergrundverarbeitung dann auf einem P-Kern, wenn ich „Hintergrunddienste“ wähle?
Nein. Ob ein Thread auf einem P-Kern oder E-Kern landet, wird heute viel stärker von QoS, der Energierichtlinie, Hybrid-Scheduling und Intel Thread Director bestimmt als von dieser Einstellung. Unter Windows 11 kann bereits das bloße Minimieren einer Anwendung deren QoS senken, und im Batteriebetrieb landet sie dann eher auf einem Effizienzkern. Wird eine Anwendung nur beim Minimieren oder nur im Batteriebetrieb langsamer, liegt der Verdacht eher bei QoS und der Energieverwaltung als bei dieser Einstellung.
Wie grenzt man die Ursache von Audio-Aussetzern und Dropouts ein?
Zunächst hält man Bedingungen wie Netzbetrieb, Energiemodus, Puffergröße sowie Vordergrund- bzw. Minimiert-Status fest und vergleicht „Programme“ und „Hintergrunddienste“ unter denselben Bedingungen, wobei man Dropout-Anzahl und Verarbeitungsverzögerung protokolliert. Bei einer Hybrid-CPU unter Windows 11 prüft man, ob sich das Problem nur beim Minimieren oder im Batteriebetrieb verschlechtert, und verdächtigt dann eher die QoS-Seite. Bei Audio oder Video prüft man zuerst, ob die wichtigen Threads MMCSS nutzen können, und gräbt erst danach, wenn das Problem weiterbesteht, bei DPC/ISR, USB und Treibern. An diesem Punkt geht es nicht mehr um den Scheduler.

Autorenprofil

Profilseite des Artikelautors.

Go Komura

Geschäftsführer von KomuraSoft LLC

Spezialisiert auf Windows-Softwareentwicklung, technische Beratung und Fehleranalyse, insbesondere bei bestehenden Systemen und schwer reproduzierbaren Störungen.

Zurück zum Blog