Wie kann ich verhindern, dass mDNSResponder unter Catalina ständig 90-100 % der CPU verbraucht?

Ich habe gerade mein 2018er 15″ MacBook Pro von Mojave auf Catalina (10.15.4) aktualisiert. Es ist schon ein paar Stunden her.

Eines der ersten Dinge, die ich nach dem Upgrade gemacht habe, war die Bearbeitung eines Videos mit der neuen kostenlosen Testversion von Final Cut Pro X. Die Lüfter meines Laptops liefen die ganze Zeit auf Hochtouren, aber im Hintergrund lief immer Rendering, also dachte ich, das sei normal.

Als ich fertig war und FCP beendete, drehten sich die Lüfter nicht herunter, also überprüfte ich den Aktivitätsmonitor und entdeckte, dass mDNSResponder 90-100% der CPU kontinuierlich beansprucht. Die Spalte „Threads“ im Aktivitätsmonitor zeigt die meiste Zeit 3-4 Threads an; die 100% verteilen sich auf alle diese Threads, und sie sind nicht alle auf demselben Kern. Ich bin mir nicht sicher, wie er das schafft und trotzdem die meiste Zeit bei oder knapp unter 100% liegt, aber genau das tut er.

Screenshot des Aktivitätsmonitors

Der Laptop hat sechs Kerne (12 logische), so dass ein voll belegter Kern keinen merklichen Unterschied in der Leistung macht (es sei denn, ich fange an zu messen, wie lange die Dinge dauern – aber das ist nur eine Feststellung, dass die Zahlen anders sind – nicht, dass die Leistung anders ist).

Anmerkung: Insgesamt zeigen die Balkendiagramme, dass mehr als ein Kern voll genutzt wird. Dies ist zu erwarten. Ich habe eine Suche in meinem Aktivitätsmonitor-Screenshot angewandt, und es läuft eine Menge anderes Zeug – Slack ist geöffnet, Chrome mit elfzig Milliarden Tabs, IntelliJ IDEA indiziert wahrscheinlich etwas, und so weiter.

Ich habe versucht, mDNSResponder mit diesen Befehlen neu zu starten:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plistsudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Ich konnte beobachten, wie der Prozess verschwand, also weiß ich, dass der Befehl funktioniert hat, aber er kehrte sofort zu 100 % CPU-Auslastung zurück, als ich ihn wieder startete. mDNSResponderHelper hielt nicht an, also versuchte ich es erneut und fügte sudo killall mDNSResponderHelper als Zwischenschritt ein. Dadurch wurden beide Prozesse wie beabsichtigt beendet, aber das Problem war immer noch nicht behoben.

Ich habe auch versucht, ein HUP-Signal an mDNSResponder zu senden, und zwar wie folgt:

sudo killall -HUP mDNSResponder

Das hatte auch keine Wirkung.

Ich öffnete die Konsole, gab mdnsresponder in das Suchfeld ein und beobachtete die Nachrichten ein oder zwei Minuten lang. Einiges über Bonjour, jede Menge <private> und eine ziemlich normal aussehende DNS-Abfrageprotokollierung. Ich habe versucht, sowohl Bluetooth als auch Wifi zu deaktivieren, in der Hoffnung, damit Bonjour zu beeinflussen, aber ich habe eine festverdrahtete Ethernet-Verbindung (die ich nicht getrennt habe), und es schien keine Wirkung zu haben.

Nachdem ich dies getippt hatte, bemerkte ich schließlich, dass cloudphotosd auch einen ordentlichen Teil der CPU beanspruchte. Ich nahm an, dass es sich dabei um den berüchtigten Neuindizierungsprozess handelte, der häufig nach Betriebssystem-Upgrades stattfindet, bei dem meine (recht große) Fotobibliothek durchsucht, die Metadaten auf der Grundlage der neuen Funktionen von Catalina aktualisiert und diese Änderungen in iCloud hochgeladen werden. Das würde eine konstante Netzwerkaktivität erklären, und so dachte ich, dass dies vielleicht die Aktivität von mDNSResponder erklären würde. Also ließ ich dieses Fenster offen, ohne es abzuschicken, und wartete eine Weile, um zu sehen, ob cloudphotosd sich beruhigen würde. Das tat er, aber mDNSResponder nicht. So viel zu dieser Vermutung!

Schließlich versuchte ich, meinen Mac neu zu starten; mDNSResponder verschwendete keine Zeit damit, seine Arbeit wieder aufzunehmen. Ohne Anwendungen, die nach einem Neustart liefen, war er bereits konstant bei oder knapp unter 100 %, genau wie vorher.

Dies ist eine Q&A-Seite, und ich habe noch keine Frage gestellt, also los geht’s: Wie finde ich heraus, was er tut, und wie bringe ich ihn dazu, aufzuhören?

UPDATE: Es sind jetzt fast 48 Stunden vergangen, und er arbeitet immer noch weiter. Meine Akkulaufzeit ist jetzt beschissen. Ich habe festgestellt, dass das Schließen des Laptop-Deckels das Rauschen zu stoppen scheint, aber es kommt sofort zurück, wenn ich ihn wieder öffne. Ich habe auch ein zusätzliches Symptom festgestellt: Die ersten DNS-Suchvorgänge nach einem Neustart dauern ~2 Sekunden (ich würde <200ms erwarten). Ich bin mir nicht sicher, ob das einfach ein Nebeneffekt von mDNSResponder ist, der so beschäftigt ist mit dem, was auch immer er tut, oder ob es mit der Ursache zusammenhängt.

UPDATE 2: Es ist mehr als drei Wochen her. Ich habe ein Kopfgeld von 100 Rp. ausgesetzt. Die Verzögerung beim DNS-Lookup hat zugenommen; es dauert oft 20-30 Sekunden, und obwohl es anscheinend eine Zwischenspeicherung gibt, denke ich, dass sie zeitlich begrenzt ist, da die Verzögerung später ohne Neustart wieder auftritt. Ich bin gerne bereit, mich direkt mit jemandem auszutauschen, der über die nötigen Kenntnisse verfügt, um dieses Problem zu beheben und zu diagnostizieren. Ich bin auf Eastern Daylight Time in den Vereinigten Staaten (UTC-4) und in der Regel während der Geschäftszeiten verfügbar.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.