Miten lopettaa mDNSResponderin käyttämästä 90-100% CPU:ta jatkuvasti ikuisesti Catalinalla?

Päivitin juuri 2018 15″ MacBook Proni Mojavesta Catalinaan (10.15.4). Nyt on mennyt muutama tunti.

Yksi ensimmäisistä asioista, joita tein päivityksen jälkeen, oli videon editointi uudella Final Cut Pro X:n ilmaisella kokeiluversiolla. Läppärini jäähdytystuulettimet juoksivat koko ajan täysillä, mutta taustarenderöinti oli aina käynnissä, joten ajattelin sen olevan normaalia.

Kun lopetin ja lopetin FCP:n, tuulettimet eivät pyörineet alas, joten tarkistin Activity Monitorin ja huomasin, että mDNSResponder vie jatkuvasti 90-100 % suorittimesta. Activity Monitorin Threads-sarakkeessa näkyy 3-4 säiettä suurimman osan ajasta; 100 % jakautuu kaikille niille, eivätkä ne kaikki ole samalla ytimellä. En ole varma, miten se onnistuu tekemään tämän ja silti pysyttelemään 100 prosentissa tai hieman alle 100 prosentissa suurimman osan ajasta, mutta niin se tekee.

näyttökuva Activity Monitorista

Kannettavassa on kuusi ydintä (12 loogista), joten yhden ytimen täysi käyttö ei tee havaittavaa eroa suorituskykyyn (paitsi jos alan mitata, kuinka kauan asiat kestävät – mutta silloin huomaa, että numerot ovat erilaiset – ei sitä, että suorituskyky on erilainen!).

Huomautus: Yhteenlaskettuna pylväsdiagrammit osoittavat, että useampi kuin yksi täysi ydin on käytössä. Tämä on odotettavissa. Minulla on haku sovellettuna Activity Monitor -näyttökuvassani, ja siellä on paljon muutakin meneillään — Slack on auki, Chromessa on yksitoista miljardia välilehteä, IntelliJ IDEA luultavasti indeksoi jotain, ja niin edelleen.

Kokeilin käynnistää mDNSResponderin uudelleen näillä komennoilla:

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

Katsoin prosessin katoavan, joten tiedän komennon toimineen, mutta se palasi heti 100 %:n suorittimen käyttöön, kun käynnistin sen uudelleen. mDNSResponderHelper ei pysähtynyt, joten yritin uudelleen lisäämällä sudo killall mDNSResponderHelper välivaiheeksi. Tämä sai molemmat prosessit katoamaan tarkoitukseni mukaisesti, mutta ei silti korjannut ongelmaa.

Kokeilin myös lähettää HUP-signaalin mDNSResponderille seuraavasti:

sudo killall -HUP mDNSResponder

Tälläkään ei ollut mitään vaikutusta.

Avasin Konsolin, kirjoitin hakukenttään mdnsresponder ja katselin viestejä minuutin tai kaksi. Joitakin juttuja Bonjourista, PALJON <private>, ja melko normaalin näköistä DNS-kyselyjen kirjaamista. Yritin poistaa sekä Bluetoothin että Wifin käytöstä siinä toivossa, että se vaikuttaisi Bonjouriin, mutta minulla on kiinteä Ethernet-yhteys (jota en katkaissut), eikä sillä näyttänyt olevan mitään vaikutusta.

Kirjoitettuani tämän huomasin lopulta, että myös cloudphotosd vei reilusti CPU:ta. Oletin, että tämä johtui surullisenkuuluisasta uudelleenindeksointiprosessista, joka tapahtuu usein käyttöjärjestelmän päivitysten jälkeen, kun (melko suuri) valokuvakirjastoni käydään läpi, päivitetään metatiedot Catalinan mukana tulleiden uusien ominaisuuksien perusteella ja ladataan nämä muutokset iCloudiin. Se selittäisi jonkin verran jatkuvaa verkkotoimintaa, ja ajattelin, että ehkä se selittäisi mDNSResponderin toiminnan. Niinpä jätin tämän ikkunan auki lähettämättä ja odotin hetken, josko cloudphotosd rauhoittuisi. Se rauhoittui, mutta mDNSResponder ei. Se siitä aavistuksesta!

Lopulta yritin käynnistää Macini uudelleen; mDNSResponder ei hukannut aikaa palatessaan takaisin toimintaan. Kun mitään sovelluksia ei ollut käynnissä uuden käynnistyksen jälkeen, se istui jo jatkuvasti 100 prosentissa tai hieman sen alapuolella, aivan kuten ennenkin.

Tämä on Q&A-sivusto, enkä ole esittänyt kysymystä, joten nyt kysyn: miten saan selville, mitä se tekee, ja miten saan sen pysähtymään?

PÄIVITYS: on kulunut melkein 48 tuntia, ja se pyörii edelleen. Akkukestoni on nyt surkea. Olen havainnut, että kannettavan tietokoneen kannen sulkeminen näyttää pysäyttävän sen, mutta se palaa heti takaisin, kun avaan sen uudelleen. Olen myös huomannut uuden oireen: DNS-haun ensimmäinen kerta uudelleenkäynnistyksen jälkeen kestää ~2 sekuntia (odottaisin <200ms). En ole varma, onko se vain sivuvaikutus siitä, että mDNSResponder on niin kiireinen tekemässä sitä, mitä se tekee, vai liittyykö se syyhyn.

PÄIVITYS 2: siitä on yli kolme viikkoa. Olen lisännyt 100 repun palkkion. DNS-haun viive on kasvanut; se kestää usein 20-30 sekuntia, ja vaikka näyttääkin siltä, että käytössä on jonkinlainen välimuistitallennus, luulen, että sillä on aikapohjainen vanhenemisaika, koska viive toistuu myöhemmin ilman uudelleenkäynnistystä. Olen mielelläni suoraan vuorovaikutuksessa jonkun kanssa, jolla on tarpeeksi tietoa tämän ongelman selvittämiseksi ja diagnosoimiseksi. Olen Yhdysvaltain itäisellä kesäajalla (UTC-4) ja yleensä käytettävissä työaikana.

Vastaa

Sähköpostiosoitettasi ei julkaista.