Hoe stop ik mDNSResponder van het gebruiken van 90-100% CPU continu voor altijd op Catalina?

Ik heb zojuist mijn 2018 15″ MacBook Pro geüpgraded van Mojave naar Catalina (10.15.4). Het is nu een paar uur geleden.

Eén van de eerste dingen die ik deed na de upgrade was een video bewerken met behulp van de nieuwe gratis proefversie van Final Cut Pro X. De koelventilatoren van mijn laptop draaiden de hele tijd op volle toeren, maar er was altijd rendering op de achtergrond aan de gang, dus ik dacht dat dat normaal was.

Toen ik klaar was en FCP afsloot, draaiden de ventilatoren niet meer, dus ik controleerde Activity Monitor en ontdekte dat mDNSResponder 90-100% CPU continu gebruikt. De Threads kolom in Activity Monitor geeft meestal 3-4 threads aan; de 100% is verdeeld over al die threads, en ze zitten niet allemaal op dezelfde core. Ik weet niet hoe hij dat voor elkaar krijgt en toch meestal op of net onder de 100% zit, maar dat is wat hij doet.

schermafbeelding van Activity Monitor

De laptop heeft zes cores (12 logische), dus als één core volledig bezet is, maakt dat geen merkbaar verschil in prestaties (tenzij ik ga meten hoe lang dingen duren — maar dan merk ik dat de getallen anders zijn – niet dat de prestaties anders zijn!).

Note: In het totaal laten de staafdiagrammen meer dan één volledige core zien die wordt gebruikt. Dit is te verwachten. Ik heb een zoekopdracht toegepast in mijn Activity Monitor screenshot, en er is veel andere dingen aan de hand — Slack is open, Chrome met elfmiljard tabbladen, IntelliJ IDEA is waarschijnlijk iets aan het indexeren, enzovoort.

Ik probeerde mDNSResponder opnieuw op te starten met deze commando’s:

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

Ik zag het proces verdwijnen, dus ik weet dat het commando werkte, maar het keerde onmiddellijk terug naar 100% CPU-gebruik toen ik het opnieuw startte. mDNSResponderHelper stopte niet, dus probeerde ik het opnieuw, en voegde sudo killall mDNSResponderHelper toe als een tussenstap. Dit zorgde ervoor dat beide processen weggingen zoals ik van plan was, maar loste het probleem nog steeds niet op.

Ik probeerde ook een HUP signaal naar mDNSResponder te sturen als volgt:

sudo killall -HUP mDNSResponder

Dit had ook geen effect.

Ik opende Console, typte mdnsresponder in het zoekveld, en keek gedurende een minuut of twee naar de berichten die voorbij kwamen. Wat dingen over Bonjour, HEEL veel <private>, en wat vrij normaal uitziend DNS query logging. Ik probeerde zowel Bluetooth als Wifi uit te schakelen in de hoop Bonjour te beïnvloeden, maar ik heb een hardwired Ethernet verbinding (die ik niet heb verbroken) en het leek geen effect te hebben.

Terwijl ik dit typte, merkte ik uiteindelijk dat cloudphotosd ook een gezonde brok CPU in beslag nam. Ik nam aan dat dit het beruchte herindexeringsproces was dat vaak plaatsvindt na OS-upgrades, waarbij mijn (vrij grote) fotobibliotheek wordt doorzocht, de metadata worden bijgewerkt op basis van de nieuwe functies die met Catalina zijn gekomen, en de wijzigingen naar iCloud worden geüpload. Dat zou een constante netwerkactiviteit verklaren, en dus dacht ik dat dat misschien de activiteit van mDNSResponder zou verklaren. Dus liet ik dit venster open zonder te verzenden en wachtte een tijdje om te zien of cloudphotosd zou kalmeren. Dat deed het, maar mDNSResponder niet. Tot zover mijn voorgevoel!

Ten slotte probeerde ik mijn Mac opnieuw op te starten; mDNSResponder verspilde geen tijd om weer aan de slag te gaan. Zonder programma’s na een nieuwe boot, zat het al consequent op of net onder 100%, net als voorheen.

Dit is een Q&A site, en ik heb nog geen vraag gesteld, dus hier gaat ie: hoe kom ik erachter wat het aan het doen is, en hoe zorg ik ervoor dat het stopt?

UPDATE: het is nu bijna 48 uur geleden en het is nog steeds aan het wegkabbelen. Mijn levensduur van de batterij is nu klote. Ik heb gemerkt dat het sluiten van de laptop deksel lijkt te doen stoppen, maar het komt direct terug als ik het weer open. Ik heb ook een bijkomend symptoom opgemerkt: de eerste DNS lookups na een herstart duren ~2 seconden (ik verwacht <200ms). Ik weet niet zeker of dat gewoon een neveneffect is van mDNSResponder dat zo druk bezig is met wat het ook aan het doen is of dat het gerelateerd is aan de oorzaak.

UPDATE 2: het is nu meer dan drie weken geleden. Ik heb een 100-rep bounty toegevoegd. De DNS lookup vertraging is toegenomen; het duurt vaak 20-30 seconden, en terwijl er lijkt een aantal caching in plaats te zijn, denk ik dat het een tijd-gebaseerde afloop heeft, omdat de vertraging later weer optreedt zonder een herstart. Ik ben blij om direct te communiceren met iemand die genoeg kennis heeft om dit probleem te debuggen en te diagnosticeren. Ik ben op Eastern Daylight Time in de Verenigde Staten (UTC-4) en over het algemeen beschikbaar tijdens kantooruren.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.