Zurück zum Blog

WindowServer mit hoher CPU-Last auf dem Mac: Was es ist und wie Sie es beheben

WindowServer bei 100 %+ CPU? Das ist der macOS-Prozess, der jeden Pixel auf Ihrem Bildschirm zeichnet. Erfahren Sie, warum er ansteigt, wann Sie sich Sorgen machen sollten und wie Sie die App finden, die die Last tatsächlich verursacht.

Sie öffnen Activity Monitor, weil sich Ihr Mac träge anfühlt, und ganz oben in der CPU-Spalte steht ein Prozess namens WindowServer — manchmal mit 80 %, 150 %, sogar 300 %. Ihn zu beenden ist keine Option (Sie würden dadurch abgemeldet werden), und der übliche Ratschlag „Starten Sie Ihren Mac neu” erklärt nicht, was eigentlich passiert. Dieser Leitfaden erklärt, was WindowServer tatsächlich ist, warum eine hohe CPU-Last fast immer ein Symptom und nicht die Ursache ist und wie Sie die App oder Arbeitslast finden, die wirklich für den Anstieg sorgt.

Kurze Antwort

WindowServer ist der macOS-Prozess, der jeden Pixel zusammensetzt, den Sie auf dem Bildschirm sehen — Fenster, Menüs, den Mauszeiger, das Dock, Animationen. Von sich aus tut er fast nichts. Wenn er eine hohe CPU-Last anzeigt, wird diese Last von etwas anderem verursacht, das ihn zum Zeichnen auffordert: einer fehlerhaften App, vielen sichtbaren Fenstern oder grafiklastigen Browserseiten, mehreren hochauflösenden externen Displays oder einer fehlerhaften GPU-beschleunigten Schicht in einer Electron-basierten App. Sie können und sollten WindowServer nicht beenden; ein erzwungenes Beenden bricht Ihre Benutzersitzung ab. Die Lösung besteht darin, die vorgelagerte App zu identifizieren und sich um diese zu kümmern. ProcXray macht das schnell: Sortieren Sie nach der GPU-Spalte pro Prozess, um den grafikintensiven Prozess zu finden, verwenden Sie das System-Dashboard, um die GPU-Gesamtbelastung zu bestätigen, und nutzen Sie den Window Spy Picker, um jedes sichtbare Fenster seiner besitzenden App zuzuordnen.

Was ist WindowServer?

WindowServer ist der Teil von macOS, der für das Bildschirm-Compositing zuständig ist — er nimmt die grafische Ausgabe jeder laufenden App und kombiniert sie zu dem endgültigen Bild, das Ihr Display anzeigt. Er befindet sich unter /System/Library/PrivateFrameworks/SkyLight.framework/Resources/WindowServer und startet automatisch, wenn sich ein Benutzer anmeldet. Es gibt einen WindowServer-Prozess pro angemeldeter Benutzersitzung.

Unter der Haube schiebt jede sichtbare App ihren gerenderten Inhalt als eine Reihe von Core-Animation-Schichten weiter. WindowServer weist dann die GPU an, diese Schichten zu kombinieren — Transparenzen, Unschärfen, Schatten und Animationen anzuwenden — und schiebt das Ergebnis mit der Bildwiederholrate (typischerweise 60 Hz, bei ProMotion-Displays bis zu 120 Hz) an Ihr Display.

Unter normalen Bedingungen verbraucht WindowServer zwischen 1 % und 15 % CPU. Auf einem Mac mit einem einzigen internen Display und einer Handvoll geöffneter Apps sollte er nicht der Spitzenprozess sein.

Eine Anmerkung zu den Prozentwerten: In Activity Monitor entsprechen 100 % dem Äquivalent eines vollen CPU-Kerns. Auf einem Mac mit mehreren Kernen kann ein einzelner Prozess deutlich über 100 % melden. WindowServer bei 300 % bedeutet also nicht „300 % der gesamten Maschine” — er belegt das Äquivalent von drei vollen Kernen.

Warum hohe WindowServer-CPU-Last meistens nichts mit WindowServer zu tun hat

Das ist die wichtigste Umdeutung in diesem Leitfaden: WindowServer ist nachgelagert. Er erzeugt seine Arbeit nicht selbst. Jeder CPU-Zyklus, den er verbraucht, stammt daher, dass er aufgefordert wird, etwas zu zeichnen — von einer App, einem Fenster, einer Animation oder vom System selbst.

Wenn WindowServer also bei 200 % CPU steht, lautet die diagnostische Frage nicht „Was stimmt mit WindowServer nicht?” Sondern:

Was lässt WindowServer gerade so hart arbeiten?

Diese vorgelagerte Ursache müssen Sie finden und beheben. WindowServer zu beenden, würde Sie nicht nur abmelden — selbst wenn Sie ihn sofort ersetzen könnten, würde dieselbe vorgelagerte Last sofort zurückkehren.

Es ist dasselbe Diagnosemuster wie bei kernel_task mit hoher CPU-Last: Der sichtbare Prozess ganz oben in Activity Monitor ist das Symptom, nicht die Ursache.

Was WindowServer-Spitzen auslöst

Es gibt sechs häufige vorgelagerte Ursachen, grob in der Reihenfolge ihrer Häufigkeit:

1. Eine hardwarebeschleunigte App, die sich falsch verhält

Chromium-basierte Browser (Chrome, Edge, Arc, Brave), Electron-Apps (Slack, Discord, VS Code, Notion, Figma), Videoeditoren und Spiele übergeben alle hardwarebeschleunigte Schichten an WindowServer. Ein Bug oder eine festhängende Schicht in einer dieser Apps kann WindowServer festsetzen, selbst wenn die App selbst untätig erscheint. Häufige Beispiele sind Chrome und Slack.

2. Viele oder hochauflösende externe Displays

Jedes externe Display erhöht die Compositing-Last. Ein externes 4K- oder 5K-Display — besonders wenn es auf eine nicht-native Auflösung skaliert wird — vervielfacht die Last pro Bild. Zwei externe 4K-Displays können WindowServer deutlich nach oben treiben, vor allem bei älteren Intel-Macs, energiesparenden Apple-Silicon-Konfigurationen und in skalierten (nicht-nativen) Modi, die einen zusätzlichen Rendering-Durchgang erfordern.

3. Viele sichtbare Fenster oder grafiklastige Webinhalte

Jedes sichtbare Fenster — einschließlich jedes geöffneten Browserfensters — ist eine eigene Gruppe von Core-Animation-Schichten, die WindowServer zusammensetzen muss. Hintergrund-Tabs in modernen Browsern sind in der Regel angehalten und belasten WindowServer nicht direkt, aber videolastige Seiten, WebGL- oder Canvas-Inhalte und animierte Webseiten (automatisch abspielende Werbung, komplexe CSS-Animationen) tun das sehr wohl. Mehrere Dutzend sichtbare Fenster oder einige anspruchsvolle Tabs geben WindowServer deutlich mehr zu verfolgen und pro Bild zu komponieren.

4. Festhängende Animationen oder durchgesickerte CALayer

Wenn eine App ihre Grafikressourcen nicht ordnungsgemäß freigibt, hält WindowServer sie weiterhin und wertet sie immer wieder neu aus. Das zeigt sich oft als langsamer CPU-Anstieg über Stunden Betriebszeit, der schlagartig abfällt, sobald Sie die problematische App beenden.

5. Transparenz, Bewegung und Hintergrundeffekte

Die dynamischen Schreibtischhintergründe von macOS sowie die systemweiten Transparenz- und Bewegungseffekte laufen alle über WindowServer. Auf älteren Intel-Macs oder auf Apple-Silicon-Macs mit integrierter Grafik, die bereits unter Last steht, können diese unverhältnismäßig teuer werden.

6. macOS- oder GPU-Treiber-Bugs

Über die Jahre wurden bei verschiedenen macOS-Point-Releases Speicher- und CPU-Leaks in WindowServer dokumentiert. Wenn Sie gerade aktualisiert haben und der Anstieg unmittelbar danach begann, prüfen Sie Apples Versionshinweise und das Apple Discussions Forum für diese spezifische Version.

So finden Sie den wahren Verursacher

Activity Monitor ist der naheliegende Ausgangspunkt und hat sich in den letzten macOS-Versionen verbessert, weist aber für dieses spezielle Problem noch Lücken auf. Es kann die GPU-Gesamtaktivität anzeigen (Fenster → GPU-Verlauf) und eine %GPU-Spalte für GPU-nutzende Prozesse, aber es liefert keinen kontinuierlichen GPU-Trend pro Prozess, der mit WindowServers Zeitachse abgeglichen ist, und es verknüpft kein Fenster auf Ihrem Bildschirm mit dem Prozess, der es besitzt. Genau diese beiden Bausteine brauchen Sie.

Schritt 1: Schnelle Erfolge in Activity Monitor

Öffnen Sie Activity Monitor → Tab CPU. Sortieren Sie nach CPU. Notieren Sie den Prozentwert von WindowServer. Öffnen Sie Fenster → GPU-Verlauf, um zu prüfen, ob die GPU-Gesamtbelastung hoch ist. Wenn Sie eine %GPU-Spalte für Prozesse sehen, sortieren Sie danach, um den GPU-intensivsten Prozess in diesem Moment zu erkennen.

Das bestätigt, dass das Symptom real ist, und weist auf grafikintensive Apps hin, aber Sie müssen es noch über die Zeit mit WindowServer korrelieren und bestätigen, welche Fenster welcher App verantwortlich sind.

Schritt 2: Die vorgelagerte App mit ProcXray identifizieren

ProcXray ist speziell für diese Art ressourcenübergreifender Diagnose gebaut:

Den umfassenderen Vergleich, wo Activity Monitor bei dieser Art von Debugging zu kurz greift, finden Sie unter ProcXray vs Activity Monitor.

Schritt 3: A/B-Test durch Beenden von Verdächtigen

Sobald Sie ein oder zwei Verdächtige haben, beenden Sie sie einzeln und beobachten Sie, wie die CPU-Last von WindowServer sinkt. Damit bestätigen Sie die Ursache, ohne neu zu starten und ohne Ihre gesamte Sitzung zu stören.

Schritt-für-Schritt-Lösungen

Wenden Sie diese der Reihe nach an — die günstigsten und am wenigsten störenden zuerst.

1. Die verdächtige App beenden

Sobald Sie den vorgelagerten Prozess identifiziert haben, beenden Sie ihn. Öffnen Sie ihn frisch wieder, wenn Sie ihn brauchen. Das löst die Mehrheit der WindowServer-Spitzen sofort.

2. Externe Displays diagnostisch trennen

Wenn Sie keine bestimmte App ausmachen können, trennen Sie ein externes Display und beobachten Sie die CPU. Wenn WindowServer stark abfällt, sind die Displays der dominante Kostenfaktor. Sie können dann entweder die Auflösung reduzieren, das externe Display in seiner nativen Auflösung betreiben (ohne Skalierung) oder es getrennt halten, wenn Sie es nicht brauchen.

3. Transparenz und Bewegung reduzieren

Beide Einstellungen verlagern Compositing-Arbeit von WindowServer auf einfachere Zeichenpfade. Kostenlos, umkehrbar und oft spürbar auf Macs mit integrierter Grafik:

4. Hardwarebeschleunigung in GPU-intensiven Apps deaktivieren

In Chrome: Einstellungen → System → „Grafikbeschleunigung verwenden, wenn verfügbar” deaktivieren, dann Chrome neu starten. Ähnliche Optionen gibt es in den meisten Electron-Apps unter ihren eigenen Einstellungen. Das verlagert das Rendering von der GPU auf die CPU — es kann WindowServer-Spitzen beheben, allerdings auf Kosten einer leicht erhöhten CPU-Last in der App selbst.

5. Überflüssige Fenster und grafiklastige Seiten schließen

Die meisten Hintergrund-Tabs sind bereits angehalten und belasten WindowServer nicht direkt. Konzentrieren Sie sich stattdessen darauf, sichtbare Fenster zu schließen, die Sie nicht brauchen, automatisch abspielende Videos oder animierte Seiten zu pausieren und WebGL- oder Canvas-Demos zu beenden, die noch in einem Hintergrundfenster laufen. Wenn Sie routinemäßig viele Browserfenster geöffnet halten, hilft es auch, Tabs in weniger Fenstern zu konsolidieren.

6. Abmelden und wieder anmelden

Beim Abmelden wird WindowServer sauber beendet und mit einem frischen Zustand neu gestartet — ohne vollständigen Neustart. Das löst oft Fälle mit festhängenden Schichten, die das Beenden einzelner Apps nicht erfasst hat.

7. macOS und die verdächtige App aktualisieren

Wenn ein kürzliches macOS- oder App-Update dem Problem vorausging, prüfen Sie auf einen Folge-Patch. Apple hat mehrfach Point-Release-Korrekturen für WindowServer-Leaks ausgeliefert.

8. Letzter Ausweg: Neustart, und nur auf älteren Intel-Macs ein SMC-Reset

Ein vollständiger Neustart setzt WindowServer und den Zustand des GPU-Treibers zurück. Wenn dieselbe Arbeitslast nach dem Neustart immer noch den Anstieg auslöst, liegt die Ursache vorgelagert — nicht in einem flüchtigen Zustand — und Sie sollten sich darauf konzentrieren, die verantwortliche App zu identifizieren, statt weitere System-Resets durchzuführen. Nur auf älteren Intel-Macs kann ein SMC-Reset gelegentlich helfen, wenn Display- oder Energieverwaltungs-Symptome neben der WindowServer-Last bestehen bleiben; Apple-Silicon-Macs haben keinen benutzerzugänglichen SMC-Reset, und er ist ohnehin selten die richtige Lösung für ein WindowServer-Problem.

Für allgemeinere Performance-Triage, wenn kein bestimmter Verdächtiger auftaucht, siehe wie Sie einen langsamen Mac durch das Beenden der richtigen Prozesse wieder flott machen.

FAQ

Kann ich WindowServer beenden oder deaktivieren?

Nein. WindowServer betreibt Ihre gesamte grafische Benutzersitzung. Ein erzwungenes Beenden meldet Sie sofort ab und verwirft alle nicht gespeicherten Arbeiten. macOS startet ihn automatisch neu, wenn Sie sich wieder anmelden. Es gibt keine unterstützte Möglichkeit, ihn zu deaktivieren.

Schädigt eine hohe WindowServer-CPU-Last meinen Mac?

Nicht direkt. Anhaltend hohe CPU-Last erhöht zwar die Wärmeentwicklung und verkürzt die Akkulaufzeit, aber dass WindowServer selbst die Arbeit erledigt, stellt kein Hardware-Risiko dar. Die tiefere Sorge ist, was ihn so hart arbeiten lässt — eine außer Kontrolle geratene App, die den Akku leersaugt, ist der eigentliche Preis.

Warum verbraucht WindowServer so viel Arbeitsspeicher?

WindowServer cached gerenderte Schichten von jeder sichtbaren App, um das Compositing schnell zu halten. Der Speicherverbrauch skaliert mit der Anzahl der Fenster, der Auflösung Ihrer Displays und der Dauer der Sitzung. Mehrere Gigabyte nach langer Betriebszeit sind nicht ungewöhnlich. Wenn der Speicher unbegrenzt wächst, vermuten Sie einen Fall durchgesickerter Schichten (Ursache 4 oben) und melden Sie sich ab und wieder an.

Warum schnellt er nur dann in die Höhe, wenn ich einen externen Monitor anschließe?

Das Hinzufügen eines externen Displays erhöht die Compositing-Arbeit pro Bild proportional zu seiner Auflösung. Ein externes 4K-Display verdoppelt oder verdreifacht ungefähr die Pixel, die WindowServer pro Bild zusammensetzen muss. Wenn der Anstieg groß ist, versuchen Sie, das externe Display in nativer Auflösung zu betreiben — skalierte Modi sind deutlich teurer, weil sie einen zusätzlichen Rendering-Durchgang erfordern.

Behebt ein Neustart die hohe WindowServer-CPU-Last dauerhaft?

Nur wenn die zugrunde liegende Ursache ein vorübergehender Leak ist. Ein Neustart setzt WindowServer in einen sauberen Zustand zurück, aber wenn Sie dieselbe App erneut öffnen oder dasselbe Display wieder anschließen, kehrt der Anstieg zurück. Die eigentliche Lösung ist, die vorgelagerte Ursache zu identifizieren; ein Neustart ist ein leeres Blatt, keine Behandlung.

Quellen und Referenzen


ProcXray kostenlos herunterladen → — finden Sie die App, die WindowServers Last tatsächlich verursacht. macOS Sonoma+, Apple Silicon & Intel.