Jak zastavit mDNSResponder od používání 90-100% CPU nepřetržitě navždy na Catalina?

Právě jsem upgradoval můj 2018 15 „MacBook Pro z Mojave na Catalina (10.15.4). Už je to pár hodin.

Jednou z prvních věcí, které jsem po upgradu udělal, byl střih videa pomocí nové bezplatné zkušební verze Final Cut Pro X. Ventilátory chlazení notebooku běžely celou dobu na plné obrátky, ale pořád probíhalo renderování na pozadí, takže jsem usoudil, že je to normální.

Když jsem skončil a ukončil FCP, ventilátory se neroztočily, takže jsem zkontroloval Monitor aktivity a zjistil, že mDNSResponder nepřetržitě zabírá 90-100 % procesoru. Sloupec Threads v Activity Monitoru ukazuje většinu času 3-4 vlákna; těch 100 % je rozloženo mezi všechna a všechna nejsou na stejném jádře. Nejsem si jistý, jak se mu to daří a přitom většinu času sedí na 100 % nebo těsně pod nimi, ale dělá to.

snímek obrazovky Activity Monitoru

Notebook má šest jader (12 logických), takže to, že je jedno jádro plně obsazené, neznamená znatelný rozdíl ve výkonu (pokud nezačnu měřit, jak dlouho věci trvají – ale to si všimnu, že čísla jsou jiná – ne že výkon je jiný!).

Poznámka: V součtu sloupcové grafy ukazují, že je využito více než jedno plné jádro. To je očekávané. Na screenshotu Monitoru aktivity mám aplikované vyhledávání a děje se spousta dalších věcí – je otevřený Slack, Chrome s jedenácti miliardami karet, IntelliJ IDEA pravděpodobně něco indexuje a tak dále.

Zkoušel jsem restartovat mDNSResponder pomocí těchto příkazů:

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

Viděl jsem, jak proces zmizel, takže vím, že příkaz fungoval, ale když jsem ho znovu spustil, okamžitě se vrátil na 100% využití CPU. Příkaz mDNSResponderHelper se nezastavil, tak jsem to zkusil znovu a jako mezikrok jsem vložil sudo killall mDNSResponderHelper. Tím oba procesy skončily, jak jsem zamýšlel, ale problém to stejně nevyřešilo.

Zkoušel jsem také poslat signál HUP do mDNSResponderu takto:

sudo killall -HUP mDNSResponder

To také nemělo žádný účinek.

Otevřel jsem Konzolu, do vyhledávacího pole zadal mdnsresponder a minutu nebo dvě sledoval, jak zprávy proudí. Něco o Bonjour, spousta <private> a docela normálně vypadající logování dotazů DNS. Zkusil jsem vypnout Bluetooth i Wifi v naději, že to Bonjour ovlivní, ale jsem na pevném ethernetovém připojení (které jsem neodpojil) a nezdálo se, že by to mělo nějaký vliv.

Po napsání tohoto textu jsem si nakonec všiml, že cloudphotosd také zabírá zdravý kus procesoru. Předpokládal jsem, že se jedná o notoricky známý proces reindexace, ke kterému často dochází po aktualizaci operačního systému, kdy se prochází moje (poměrně velká) knihovna fotografií, aktualizují se metadata na základě jakýchkoli nových funkcí, které přišly s Catalinou, a tyto změny se nahrávají na iCloud. To by vysvětlovalo nějakou neustálou síťovou aktivitu, a tak mě napadlo, že by to mohlo vysvětlit aktivitu mDNSResponderu. Nechal jsem tedy toto okno otevřené bez odesílání a chvíli počkal, jestli se cloudphotosd uklidní. Uklidnil se, ale mDNSResponder ne. Tolik k této předtuše!

Nakonec jsem zkusil restartovat Mac; mDNSResponder neztrácel čas a vrátil se k práci. Bez spuštěných aplikací po novém spuštění už trvale seděl na 100 % nebo těsně pod nimi, stejně jako předtím.

Toto je stránka s otázkami&A a já jsem nepoložil žádnou otázku, takže tady je: jak zjistím, co to dělá, a jak to zastavím?

DOPLNĚNO: už je to skoro 48 hodin a pořád to chrlí. Výdrž baterie je teď na nic. Vypozoroval jsem, že zavřením víka notebooku to zřejmě přestane, ale po opětovném otevření se to hned vrátí. Všiml jsem si také dalšího příznaku: první vyhledávání DNS po restartu trvá ~2 sekundy (očekával bych <200ms). Nejsem si jistý, jestli je to prostě vedlejší účinek toho, že mDNSResponder je tak zaneprázdněný tím, co dělá, nebo jestli to souvisí s příčinou.

DOPLNĚNÍ 2: je to už více než tři týdny. Přidala jsem odměnu 100 peněz. Zpoždění při vyhledávání DNS se zvýšilo; často to trvá 20-30 sekund, a i když se zdá, že existuje nějaká mezipaměť, myslím, že má časově omezenou platnost, protože zpoždění se později opakuje i bez restartu. Rád budu komunikovat přímo s někým dostatečně znalým, aby mohl tento problém vyladit a diagnostikovat. Jsem na východním letním čase ve Spojených státech (UTC-4) a obecně jsem k dispozici v pracovní době.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.