MacOS 14.6.1/VSCode – WindowServer mit hoher CPU-Auslastung

Kurzfassung: Ein automatisches Update einer für mich unbedeutenden Erweiterung im VS Code hat zu hoher CPU-Auslastung durch den WindowServer bei MacOS geführt.

—-

Letzte Woche Mittwoch habe ich endlich dieser nervigen Updateerinnerung von MacOS nachgegeben und mein MacBook Pro M1 auf MacOS 14.6.1 aktualisieren lassen.

Zuerst ging alles wie immer von Statten, und das Update war innerhalb weniger Minuten abgeschlossen. Mit der Zeit ist mir jedoch aufgefallen, dass der Mac nun deutlich wärmer und langsamer wurde. Selbst eine einfache AVD-Instanz und VS Code haben eine enorme Wärmeentwicklung verursacht und den Akku regelrecht leer gesaugt. Das kleine 65W Ersatznetzteil kam kaum hinterher.

Fehlersuche

Nachdem ich den Arbeitstag trotz langsameren Macs überstanden hatte, ging es an die Fehlersuche. In der Zwischenzeit hatte ich bereits in der Aktivitätsanzeige beobachtet, dass der WindowServer deutlich zu viel CPU-Auslastung verursacht und dauerhaft bei 50-60% zu liegen scheint.

Eine kurze Websuche brachte keine Erkenntnisse. Nicht schlimm, ein wenig Suchen, Probieren und Logs lesen werde ich doch auch hinbekommen.

Als erstes habe ich versucht, ein laufendes Tool nach dem anderen zu schließen. Der erste Verdacht lag bei Mattermost Desktop – wäre nicht das erste Mal. Diesmal war Mattermost aber unschuldig.

Als nächstes habe ich einen Browser nach dem anderen beendet.
Safari? nein.
Chrome? nein.
Vivaldi? nein.
Firefox? ebenfalls Fehlanzeige. Die Auslastung bleibt so hoch.

Das beenden von Docker, AVD, Nextcloud Desktop bringen ebenfalls keine Besserung, aber die hatte ich auch nicht wirklich im Verdacht.

Bleibt eigentlich nur Visual Studio Code. Electron-Anwendung, dauerhaft im Einsatz und mit einigen Erweiterungen ausgestattet, wäre es nicht das Erste mal, dass hier das Problem liegt. Und Chrome/Electron sind bekannt dafür, Window Manager/Server etwas auszulasten. Das hatte ich schon immer wieder bei Linux (KDE) erleben können, als ich noch mit einem Linux-System unterwegs war.

Und tatsächlich, VS Code beendet und schon geht die Auslastung durch den WindowServer auf angenehmere 4-6% zurück. Kurzer Gegencheck, wieder gestartet und schon geht die Auslastung wieder hoch.

Nach einem Neustart des Macs ebenfalls.

Lösung

Da ich nun weiß, dass es am VS Code liegt und ich darauf aber nicht verzichten kann und will, muss eine Lösung her.
In diesem Fall war sie einfach. Nach systematischem Deaktivieren der Erweiterungen von unwichtig zu wichtig bin ich bei der Gradle-Erweiterung angekommen. Kaum deaktiviert, geht die Auslastung auf normal zurück.

Nach kurzer Prüfung gab es tatsächlich auch ein paar Updates für diese Erweiterung, die Anscheinend automatisch installiert wurden. Es wurde einfach durch den Neustart des Macs beim Update auch die Erweiterung aktualisiert und verursachte auf ein mal Probleme.

Warum die Erweiterung eine so hohe Last auf den WindowServer verursacht hat, kann ich nicht beurteilen, aber es zeigt einmal mehr, dass automatische updates praktisch sind und durchaus für mehr Sicherheit sorgen, aber manchmal auch Kopfschmerzen bereiten und etwas kostbare Zeit kosten können.

TLDR;

Es war nicht das MacOS-Update wie anfangs gedacht, sondern eine VS Code Erweiterung, die durch ein automatisches Update zeitgleich installiert wurde und die hohe Auslastung im WindowServer verursacht hatte.