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.

  1. Öppna Terminal.
  2. Kör sudo dscacheutil -flushcache och ange ditt lösenord när du blir ombedd.
  3. 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.

  1. Öppna Aktivitetskontroll, välj Innehåll → Alla processer och skriv mdns i sökfältet. Du ser mDNSResponder under kontot _mdnsresponder, och mDNSResponderHelper under root.
  2. 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.
  3. 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 under nameserver[0], nameserver[1] och så vidare.
  4. 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.
  5. 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 _airplay och _ipp fö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 --dns visar extra resolvrar med en domain-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.