Hur man stoppar mDNSResponder från att använda 90-100% CPU kontinuerligt för evigt på Catalina?

Jag har just uppgraderat min 2018 15″ MacBook Pro från Mojave till Catalina (10.15.4). Det har gått några timmar.

En av de första sakerna jag gjorde efter uppgraderingen var att redigera en video med hjälp av den nya kostnadsfria provversionen av Final Cut Pro X. Min bärbara dators kylfläktar körde på full hastighet hela tiden, men det pågick alltid rendering i bakgrunden, så jag tänkte att det var normalt.

När jag avslutade och slutade FCP snurrade inte fläktarna ner, så jag kollade Aktivitetsövervakaren och upptäckte att mDNSResponder tar 90-100 % av processorn kontinuerligt. Kolumnen Trådar i Aktivitetsövervakaren visar 3-4 trådar för det mesta; de 100 % är fördelade på alla dessa, och de är inte alla på samma kärna. Jag är inte säker på hur den klarar av att göra det och ändå ligga på eller strax under 100 % för det mesta, men det är vad den gör.

skärmdump av Activity Monitor

Den bärbara datorn har sex kärnor (12 logiska), så att ha en kärna fullt upptagen gör inte någon märkbar skillnad i prestanda (såvida jag inte börjar mäta hur lång tid saker och ting tar – men det är att märka att siffrorna är annorlunda – inte att prestandan är annorlunda!).

Notera: I de sammanlagda stapeldiagrammen visas att mer än en full kärna används. Detta är förväntat. Jag har en sökning tillämpad i min skärmdump från aktivitetsövervakningen, och det finns massor av andra saker som pågår – Slack är öppet, Chrome har elva miljarder flikar, IntelliJ IDEA indexerar förmodligen något, och så vidare.

Jag försökte starta om mDNSResponder med dessa kommandon:

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

Jag såg processen försvinna, så jag vet att kommandot fungerade, men den återgick omedelbart till 100 % CPU-användning när jag startade den igen. mDNSResponderHelper stannade inte, så jag försökte igen och satte in sudo killall mDNSResponderHelper som ett mellansteg. Detta fick båda processerna att försvinna som jag hade tänkt mig, men löste fortfarande inte problemet.

Jag försökte också skicka en HUP-signal till mDNSResponder enligt följande:

sudo killall -HUP mDNSResponder

Det hade inte heller någon effekt.

Jag öppnade Console, skrev in mdnsresponder i sökfältet och tittade på hur meddelandena flödade förbi i en minut eller två. En del saker om Bonjour, MASSOR av <private> och en ganska normal DNS-förfrågningsloggning. Jag försökte inaktivera både Bluetooth och Wifi i hopp om att påverka Bonjour, men jag har en fast Ethernet-anslutning (som jag inte kopplade bort) och det verkade inte ha någon effekt.

Efter att ha skrivit det här märkte jag så småningom att cloudphotosd också tog upp en rejäl bit av processorn. Jag antog att detta var den ökända omindexeringsprocessen som ofta sker efter OS-uppgraderingar, som går igenom mitt (ganska stora) fotobibliotek, uppdaterar metadata baserat på vilka nya funktioner som än kom med Catalina, och laddar upp dessa ändringar till iCloud. Det skulle förklara en viss konstant nätverksaktivitet, och så tänkte jag att det kanske skulle förklara mDNSResponders aktivitet. Så jag lämnade det här fönstret öppet utan att skicka och väntade ett tag för att se om cloudphotosd skulle lugna ner sig. Det gjorde det, men det gjorde inte mDNSResponder. Så mycket för den föraningen!

Slutligt försökte jag starta om min Mac; mDNSResponder slösade ingen tid på att börja jobba igen. Utan några program som kördes efter en nystart låg den redan konstant på eller strax under 100 %, precis som tidigare.

Detta är en Q&A-webbplats, och jag har inte ställt någon fråga, så här kommer den: hur tar jag reda på vad den gör, och hur får jag den att sluta?

UPPDATERING: det har gått nästan 48 timmar och den fortsätter att arbeta. Min batteritid suger nu. Jag har observerat att det verkar som om det slutar när jag stänger locket på den bärbara datorn, men det kommer tillbaka direkt när jag öppnar det igen. Jag har också lagt märke till ytterligare ett symptom: DNS-sökningar för första gången efter en omstart tar ~2 sekunder (jag förväntar mig <200ms). Jag är inte säker på om det helt enkelt är en bieffekt av att mDNSResponder är så upptagen med att göra vad den än gör eller om det är relaterat till orsaken.

UPPDATERING 2: Det har gått mer än tre veckor. Jag har lagt till en belöning på 100 reps. Fördröjningen av DNS-uppslag har ökat; det tar ofta 20-30 sekunder, och även om det verkar finnas en viss cachelagring på plats tror jag att den har ett tidsbaserat utgångsdatum, eftersom fördröjningen återkommer senare utan en omstart. Jag interagerar gärna direkt med någon som är tillräckligt kunnig för att kunna felsöka och diagnostisera detta problem. Jag befinner mig på östlig sommartid i USA (UTC-4) och är i allmänhet tillgänglig under kontorstid.

Lämna ett svar

Din e-postadress kommer inte publiceras.