Glossário/Processos que você vai ver

mDNSResponder

Também: Bonjour e DNS

Resposta rápida

mDNSResponder é o processo do macOS que transforma cada nome de domínio em um endereço. Ele é o resolvedor de DNS do Mac e também executa o Bonjour, que encontra impressoras, alto-falantes AirPlay, Macs compartilhados e outros dispositivos na sua rede local sem nenhuma configuração.

Quando qualquer app abre um site ou se conecta a um servidor, ele pede o endereço ao mDNSResponder. Ele guarda as respostas em cache, então as consultas repetidas são instantâneas. Ele roda com a própria conta de sistema, _mdnsresponder, não como você.

A carga dele acompanha quantos nomes estão sendo consultados. Um navegador com muitas abas, uma VPN ou uma rede local movimentada com muitos dispositivos Bonjour, tudo isso dá mais trabalho a ele.

Por que o mDNSResponder está usando CPU

Picos curtos vêm de rajadas de consultas: muitas abas novas, um app sincronizando com muitos servidores ou dispositivos entrando na rede. Uso contínuo geralmente aponta para algo repetindo consultas em loop, uma VPN ou um filtro de DNS com problemas, ou uma rede em que os anúncios Bonjour nunca param.

Quando os sites não carregam pelo nome mas funcionam pelo endereço, ou um site mudou de servidor e o Mac continua indo para o antigo, o cache é o suspeito.

Como limpar o cache de DNS

Dois comandos no Terminal limpam o cache no macOS recente e mandam o mDNSResponder recarregar, sem precisar reiniciar.

  1. Abra o Terminal.
  2. Execute sudo dscacheutil -flushcache e digite sua senha quando for pedida.
  3. Execute sudo killall -HUP mDNSResponder.

Como ver o que o mDNSResponder está fazendo

Ele roda com a própria conta de sistema, então o Monitor de Atividade o esconde até você pedir todos os processos. O Terminal mostra as duas funções dele, DNS e Bonjour, uma de cada vez.

  1. Abra o Monitor de Atividade, escolha Visualizar → Todos os Processos e digite mdns no campo de busca. Você vai ver o mDNSResponder sob a conta _mdnsresponder e o mDNSResponderHelper sob root.
  2. Observe a % CPU na aba CPU e as colunas de pacotes na aba Rede. Picos curtos são normais. Uma carga constante enquanto você não está navegando merece atenção.
  3. Para ver quais servidores DNS o Mac está usando, abra o Terminal e execute scutil --dns. O resolver #1 lista os servidores usados na maioria das consultas em nameserver[0], nameserver[1] e assim por diante.
  4. Para testar uma consulta pelo próprio mDNSResponder, execute dns-sd -G v4v6 apple.com. Ele mostra cada endereço conforme chega. Pressione Control-C para parar.
  5. Para ver o que o Bonjour encontra na sua rede, execute dns-sd -B _services._dns-sd._udp local.. Ele lista os tipos de serviço que os dispositivos ao seu redor anunciam, como _airplay e _ipp para impressoras. Pressione Control-C para parar.

Uso normal do mDNSResponder ou sinal de problema

Normal: perto de zero, com picos breves quando você abre muitas abas, entra em uma rede ou quando um dispositivo da rede sai do repouso.

Vale investigar: uso constante de CPU ou de rede por horas, ou nomes que não são resolvidos em uma rede mas funcionam em outra. As causas comuns:

  • Uma VPN ou um filtro de DNS que adiciona os próprios resolvers e fica trocando esses resolvers. scutil --dns mostra resolvers extras com uma linha domain quando uma VPN manda alguns nomes para os próprios servidores.
  • Um app ou script que consulta nomes em um loop apertado, muitas vezes um que fica tentando de novo um servidor que não consegue alcançar.
  • Uma rede local movimentada, como um escritório ou um prédio compartilhado, com muitos dispositivos se anunciando pelo Bonjour.
  • Uma rede que fornece um servidor DNS lento ou que não responde, então as consultas esperam e tentam de novo.

DNS e Bonjour: as duas funções

Nomes da internet, como apple.com, vão para os servidores DNS definidos pela sua rede ou por você. Nomes que terminam em .local, como o nome de rede do próprio Mac, nunca saem da rede local: o mDNSResponder pergunta diretamente aos dispositivos ao redor, e é esse DNS multicast que dá o m ao nome dele.

É por isso que scutil --dns lista resolvers para local marcados como mdns. Se uma impressora ou um Mac compartilhado pode ser acessado pelo nome .local em casa, mas não no trabalho, é a rede do trabalho que está bloqueando esses anúncios locais, não a internet.

Perguntas frequentes

O que é mDNSResponder no Mac?

O processo do macOS que resolve nomes de domínio em endereços para todos os apps e executa o Bonjour para encontrar impressoras, alto-falantes AirPlay e outros dispositivos na sua rede.

Posso encerrar o mDNSResponder?

O macOS o reinicia na hora, e nada consegue consultar um site enquanto ele está fora. Para apagar uma resposta errada, limpe o cache de DNS em vez de encerrá-lo.

Por que o mDNSResponder quer aceitar conexões de entrada?

O Bonjour fica atento a outros dispositivos que se anunciam na rede local. O firewall do macOS permite isso por padrão; se o seu perguntar, permitir mantém funcionando o AirPlay, a descoberta de impressoras e o compartilhamento de tela.

O mDNSResponder é seguro?

Sim. Ele faz parte do macOS, é assinado pela Apple e fica em /usr/sbin/mDNSResponder. Ele roda com a própria conta de sistema restrita, não como você nem como root.

O que é o mDNSResponderHelper?

Um pequeno companheiro do mDNSResponder que roda como root e cuida das poucas tarefas que a conta restrita dele não consegue fazer sozinha. Ele faz parte do macOS e normalmente fica ocioso.

Relacionados

Procurando algo melhor que o Monitor de Atividade? Veja as melhores alternativas ao Monitor de Atividade para Mac ou navegue por todos os termos do glossário.