Waarom gebruikt mDNSResponder zoveel CPU op mijn Mac
mDNSResponder is het macOS-proces dat DNS-opzoekingen voor elke app beantwoordt en via Bonjour apparaten in je lokale netwerk vindt. Het hoort gewoon bij het systeem, draait vanaf /usr/sbin/mDNSResponder onder een eigen account _mdnsresponder en zit op een gezonde Mac rond de 0% CPU. Als het toch druk blijft, doet het meestal werk voor iets anders, zoals een browser, een VPN of een rumoerig netwerk, dus zoek die bron op in plaats van het proces te stoppen.
Wat het doet
De handleiding (man mDNSResponder) beschrijft een daemon die Multicast DNS en DNS Service Discovery implementeert, DNS-query's uitvoert namens andere processen en een cache van de antwoorden bijhoudt. Daarom komt de naam zo vaak voor in Activiteitenweergave en netwerktools: als een app om een adres vraagt, stelt dit proces de vraag.
Een tweede proces, mDNSResponderHelper, draait als root ernaast. Op de Mac die voor deze pagina is gebruikt, zagen de twee er in rust zo uit:
_mdnsresponder 0.0% CPU /usr/sbin/mDNSResponder
root 0.0% CPU /usr/sbin/mDNSResponderHelper
Zoek wat het aandrijft
Open Activiteitenweergave, ga naar het tabblad CPU en let een minuut op mDNSResponder. Een korte piek is normaal. Blijft het hoog, verander dan telkens één ding:
- Sluit browsers en apps die veel verbindingen openen en kijk of het getal binnen een minuut daalt.
- Zet een VPN, proxy of DNS-filter uit, want die veranderen hoe elke opzoeking wordt gerouteerd.
- Maak verbinding met een ander netwerk, bijvoorbeeld een hotspot van je telefoon. Verdwijnt de belasting, dan zit de oorzaak op het oude netwerk.
- Wil je zien wat je netwerk adverteert, voer dan dit een paar seconden uit en stop het met
Ctrl + C:
dns-sd -B _services._dns-sd._udp local
Een lange, steeds veranderende lijst wijst op een netwerk met veel Bonjour-apparaten.
| Wat je ziet | Waarschijnlijke oorzaak | Probeer |
|---|---|---|
| Een piek als je een browser of app opent | Normale opzoekingen | Niets |
| Hoge CPU alleen met een VPN of proxy aan | De DNS-instellingen of het filter ervan | Werk het bij of controleer de DNS-instellingen |
| Hoge CPU alleen op één netwerk | Veel of slecht werkende Bonjour-apparaten | Test een ander netwerk en start dan de router of het verdachte apparaat opnieuw op |
| Sites laden niet of tonen oude adressen | Een verouderd of fout DNS-antwoord | Wis de DNS-cache |
| Veel dataverbruik onder de naam | Opzoekingen en lokale detectie | Zie welke app mijn netwerk gebruikt |
Is opnieuw starten veilig
Het wissen van de DNS-cache stuurt het proces een signaal, en dat is de ondersteunde manier om hem leeg te maken:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Dit duurt even en vraagt om je wachtwoord. Een herstart van de Mac doet hetzelfde. Wissen helpt alleen bij foute of verouderde antwoorden, dus als het proces druk is omdat een app blijft vragen, komt de belasting terug.
Is het malware
Het echte bestand staat op /usr/sbin/mDNSResponder, op het systeemvolume, en macOS start het vanuit /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist. Om te controleren wat er draait, kijk je naar het pad in de inspector van Activiteitenweergave of voer je dit uit:
ps -axo user,pid,args | grep '[m]DNSResponder'
Wees achterdochtig bij een proces met deze naam dat vanuit een andere map draait, zoals je thuismap of /tmp. Een juist pad is een goed bewijs, maar zegt niet welke app de opzoekingen veroorzaakt.
Wat je beter niet doet
- Probeer het niet uit te zetten. System Integrity Protection beschermt die launch daemon, en zonder dit proces werken naamopzoekingen op de hele Mac niet meer.
- Gebruik niet
kill -9in plaats van-HUP. De vorm met-HUPstaat in het gearchiveerde supportartikel van Apple. - Zie veel dataverbruik niet als een download. Het verkeer bestaat uit opzoekingen en detectie, en de activiteit van andere apps veroorzaakt het.
- Installeer er geen "netwerkversneller" of DNS-opschoner voor. Geen van beide vertelt je wat er vraagt.
Waar Mole past
Mole toont mDNSResponder in Status met CPU en geheugen als het druk is, en het zoekveld van de tabel vindt het ook als het rustig is. Waarom draait dit? in het menu toont het uitvoerbare bestand en wat het heeft gestart. macOS laat Mole de poorten van dit systeemaccount niet lezen, dus er verschijnt geen poortlijst. Omdat het een netwerkservice van het systeem is, biedt Mole geen manier om het te stoppen. Mole Mac wist de DNS-cache niet en verandert geen DNS- of netwerkinstellingen, gebruik daarvoor dus de Terminal-opdracht hierboven. De Netwerk-lijst per app, die opent als je op de netwerksnelheden in de menubalk klikt, kan het ook tonen, wat helpt om opzoekingen te onderscheiden van het echte verkeer van een app.
Veelgestelde vragen
Wat is mDNSResponder op Mac?
Het is het systeemproces dat DNS-opzoekingen voor apps uitvoert en via Bonjour apparaten in het lokale netwerk vindt. Het draait vanaf /usr/sbin/mDNSResponder.
Waarom gebruikt mDNSResponder zoveel CPU?
Meestal zorgt iets ervoor dat het veel opzoekingen of detectie doet: een app, een VPN of DNS-filter, of een druk netwerk. Verander die één voor één en let op het getal.
Kan ik mDNSResponder stoppen of uitzetten?
Zet het niet uit. Naamopzoekingen voor de hele Mac hangen ervan af. Om foute antwoorden te wissen, wis je de DNS-cache met de -HUP-opdracht.
Is mDNSResponder een virus?
Het echte proces draait vanuit /usr/sbin en start vanuit een launch daemon van het systeem. Een kopie die vanuit een andere map draait, verdient een nadere blik.
Waarom vraagt mDNSResponder toegang tot het netwerk of gebruikt het data?
Zijn taak is netwerkopzoekingen en lokale detectie, dus het gebruikt het netwerk voortdurend. Het dataverbruik weerspiegelt wat andere apps vragen en is normaal klein.