Ordlista/Processer du kommer att se
mDNSResponder
Andra namn: Bonjour och DNS
Kort svar
mDNSResponder är processen i macOS som gör om varje domännamn till en adress. Den är datorns DNS-resolver, och den kör också Bonjour, som hittar skrivare, AirPlay-högtalare, delade Mac-datorer och andra enheter i ditt lokala nätverk utan någon konfiguration.
När en app öppnar en webbplats eller ansluter till en server frågar den mDNSResponder efter adressen. Den cachar svaren, så upprepade uppslagningar går direkt. Den körs som ett eget systemkonto, _mdnsresponder, inte som du.
Belastningen följer hur många namn som slås upp. En webbläsare med många flikar, ett VPN eller ett livligt lokalt nätverk med många Bonjour-enheter ger den mer att göra.
Varför mDNSResponder använder CPU
Korta toppar kommer från vågor av uppslagningar: många nya flikar, en app som synkroniserar med många servrar eller enheter som ansluter till nätverket. Varaktig användning pekar oftast på något som gör om uppslagningar i en loop, ett VPN eller DNS-filter som beter sig illa, eller ett nätverk där Bonjour-annonseringarna aldrig tar slut.
När webbplatser inte läses in via namnet men fungerar med adressen, eller en webbplats har bytt server och datorn fortfarande går till den gamla, är det troligen cachen som är boven.
Så tömmer du DNS-cachen
Två kommandon i Terminal tömmer cachen i nyare versioner av macOS och säger åt mDNSResponder att läsa in på nytt, utan att någon omstart behövs.
- Öppna Terminal.
- Kör
sudo dscacheutil -flushcacheoch ange ditt lösenord när du blir ombedd. - Kör
sudo killall -HUP mDNSResponder.
Så ser du vad mDNSResponder gör
Den körs som ett eget systemkonto, så Aktivitetskontroll döljer den tills du ber om alla processer. Terminal kan visa dess två uppgifter, DNS och Bonjour, en i taget.
- Öppna Aktivitetskontroll, välj Innehåll → Alla processer och skriv
mdnsi sökfältet. Du ser mDNSResponder under kontot _mdnsresponder, och mDNSResponderHelper under root. - Följ % processor på fliken Processor och paketkolumnerna på fliken Nätverk. Korta toppar är normala. En jämn belastning medan du inte surfar är värd en titt.
- Om du vill se vilka DNS-servrar datorn använder öppnar du Terminal och kör
scutil --dns. Resolver #1 listar servrarna som används för de flesta uppslagningar undernameserver[0],nameserver[1]och så vidare. - Om du vill testa en uppslagning genom mDNSResponder själv kör du
dns-sd -G v4v6 apple.com. Den skriver ut varje adress när den kommer. Tryck på kontroll-C för att sluta. - Om du vill se vad Bonjour hittar i ditt nätverk kör du
dns-sd -B _services._dns-sd._udp local.. Den listar de typer av tjänster som enheter omkring dig annonserar, till exempel_airplayoch_ippför skrivare. Tryck på kontroll-C för att sluta.
Normal användning av mDNSResponder jämfört med ett problem
Normalt: nära noll, med korta toppar när du öppnar många flikar, ansluter till ett nätverk eller en enhet i nätverket vaknar.
Värt att undersöka: jämn processor- eller nätverksanvändning i timmar, eller namn som inte går att slå upp i ett nätverk men fungerar i ett annat. De vanliga orsakerna:
- Ett VPN eller DNS-filter som lägger till egna resolvrar och hela tiden ändrar dem.
scutil --dnsvisar extra resolvrar med endomain-rad när ett VPN skickar vissa namn till sina egna servrar. - En app eller ett skript som slår upp namn i en tät loop, ofta ett som hela tiden försöker nå en server det inte kommer åt.
- Ett livligt lokalt nätverk, till exempel på ett kontor eller i ett delat hus, med många enheter som annonserar sig via Bonjour.
- Ett nätverk som delar ut en DNS-server som är långsam eller inte svarar, så att uppslagningar väntar och försöker igen.
DNS och Bonjour: de två uppgifterna
Namn på internet, som apple.com, går till de DNS-servrar som ditt nätverk eller du har ställt in. Namn som slutar på .local, till exempel datorns eget nätverksnamn, lämnar aldrig det lokala nätverket: mDNSResponder frågar enheterna omkring den direkt, vilket är den multicast-DNS som ger den m:et i namnet.
Det är därför scutil --dns listar resolvrar för local märkta mdns. Om en skrivare eller en delad Mac går att nå via sitt .local-namn hemma men inte på jobbet är det jobbets nätverk som blockerar de lokala annonseringarna, inte internet.
Frågor som folk ställer
Vad är mDNSResponder på Mac?
Processen i macOS som slår upp adresser för domännamn åt alla appar och kör Bonjour för att hitta skrivare, AirPlay-högtalare och andra enheter i ditt nätverk.
Kan jag avsluta mDNSResponder?
macOS startar om den direkt, och inget kan slå upp en webbplats medan den är borta. Om du vill rensa ett felaktigt svar tömmer du DNS-cachen i stället för att avsluta den.
Varför vill mDNSResponder ta emot inkommande anslutningar?
Bonjour lyssnar efter andra enheter som annonserar sig i det lokala nätverket. Brandväggen i macOS tillåter det som standard; om din brandvägg frågar tillåter du den, så att AirPlay, sökning efter skrivare och skärmdelning fortsätter att fungera.
Är mDNSResponder säker?
Ja. Den är en del av macOS, signerad av Apple, och finns i /usr/sbin/mDNSResponder. Den körs under ett eget begränsat systemkonto, inte som du eller som root.
Vad är mDNSResponderHelper?
En liten följeslagare till mDNSResponder som körs som root och sköter de få uppgifter som dess begränsade konto inte kan göra själv. Den är en del av macOS och är normalt overksam.
Relaterat
Letar du efter något bättre än Aktivitetskontroll? Läs om de bästa alternativen till Aktivitetskontroll för Mac, eller bläddra bland alla begrepp i ordlistan.