Por que o mDNSResponder está usando tanta CPU no meu Mac
O mDNSResponder é o processo do macOS que responde às consultas DNS de todos os apps e encontra dispositivos na sua rede local por meio do Bonjour. Ele faz parte normal do sistema, roda a partir de /usr/sbin/mDNSResponder sob a própria conta _mdnsresponder e, em um Mac saudável, fica perto de 0% de CPU. Quando ele fica ocupado, em geral está trabalhando para outra coisa, como um navegador, uma VPN ou uma rede barulhenta, então a solução é achar essa origem em vez de parar o processo.
O que ele faz
A página de manual (man mDNSResponder) descreve um daemon que implementa Multicast DNS e DNS Service Discovery, faz consultas DNS em nome de outros processos e mantém um cache das respostas. Por isso o nome aparece tanto no Monitor de Atividade e em ferramentas de rede: quando um app pede um endereço, é esse processo quem pergunta.
Um segundo processo, mDNSResponderHelper, roda como root ao lado dele. No Mac usado para esta página, os dois apareciam assim em repouso:
_mdnsresponder 0.0% CPU /usr/sbin/mDNSResponder
root 0.0% CPU /usr/sbin/mDNSResponderHelper
Descubra o que está puxando o consumo
Abra o Monitor de Atividade, vá à aba CPU e observe o mDNSResponder por um minuto. Um pico curto é normal. Se ele continuar alto, mude uma coisa por vez:
- Feche navegadores e apps que abrem muitas conexões e veja se o valor cai em um minuto.
- Desligue qualquer VPN, proxy ou filtro de DNS, já que eles mudam o caminho de cada consulta.
- Entre em outra rede, como o ponto de acesso do celular. Se a carga sumir, a causa está na rede anterior.
- Para ver o que a sua rede anuncia, rode isto por alguns segundos e pressione
Ctrl + Cpara parar:
dns-sd -B _services._dns-sd._udp local
Uma lista longa e que muda o tempo todo indica uma rede com muitos dispositivos Bonjour.
| O que você vê | Causa provável | Experimente |
|---|---|---|
| Um pico ao abrir um navegador ou um app | Consultas normais | Nada |
| CPU alta só com VPN ou proxy ligado | As configurações de DNS ou o filtro dele | Atualize-o ou confira as configurações de DNS |
| CPU alta só em uma rede | Muitos dispositivos Bonjour, ou com mau funcionamento | Teste outra rede e depois reinicie o roteador ou o dispositivo suspeito |
| Sites falham ou mostram endereços antigos | Uma resposta DNS desatualizada ou errada | Limpe o cache de DNS |
| Muito uso de dados sob o nome dele | Consultas e descoberta local | Veja qual app está usando minha rede |
É seguro reiniciá-lo
Limpar o cache de DNS envia um sinal ao processo, e essa é a forma suportada de esvaziá-lo:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Isso leva um instante e pede a sua senha. Reiniciar o Mac faz o mesmo trabalho. Limpar só ajuda com respostas erradas ou desatualizadas, então, se o processo está ocupado porque um app não para de perguntar, a carga volta.
É malware
O arquivo verdadeiro fica em /usr/sbin/mDNSResponder, no volume do sistema, e o macOS o inicia a partir de /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist. Para conferir o que está rodando, veja o caminho no inspetor do Monitor de Atividade ou rode:
ps -axo user,pid,args | grep '[m]DNSResponder'
Desconfie de um processo com esse nome que rode de outra pasta, como a sua pasta pessoal ou /tmp. Um caminho correto é uma boa evidência, mas não diz qual app está causando as consultas.
O que não fazer
- Não tente desativá-lo. A Proteção de Integridade do Sistema protege esse launch daemon e, sem esse processo, a resolução de nomes em todo o Mac deixa de funcionar.
- Não use
kill -9no lugar de-HUP. A forma com-HUPé a que o artigo de suporte arquivado da Apple indica. - Não trate o alto uso de dados como um download. O tráfego são consultas e descoberta, e a atividade de outros apps é o que o causa.
- Não instale um "acelerador de rede" nem um limpador de DNS por causa disso. Nenhum dos dois diz o que está perguntando.
Onde o Mole entra
O Mole lista o mDNSResponder em Status com a CPU e a memória quando ele está ocupado, e a busca da tabela o encontra quando não está. Por que está em execução? no menu dele mostra o executável e o que o iniciou. O macOS não deixa o Mole ler as portas dessa conta do sistema, então nenhuma lista de portas aparece. Por ser um serviço de rede do sistema, o Mole não oferece como pará-lo. O Mole Mac não limpa o cache de DNS e não altera as configurações de DNS nem de rede, então use o comando do Terminal acima para isso. A lista Rede por app, aberta ao clicar nas taxas de rede na barra de menus, também pode mostrá-lo, o que ajuda a distinguir consultas do tráfego real de um app.
Perguntas frequentes
O que é o mDNSResponder no Mac?
É o processo do sistema que faz as consultas DNS dos apps e encontra dispositivos na rede local por meio do Bonjour. Ele roda a partir de /usr/sbin/mDNSResponder.
Por que o mDNSResponder está usando tanta CPU?
Em geral algo o faz executar muitas consultas ou descobertas: um app, uma VPN ou um filtro de DNS, ou uma rede movimentada. Mude essas coisas uma por vez e observe o valor.
Posso encerrar ou desativar o mDNSResponder?
Não o desative. A resolução de nomes de todo o Mac depende dele. Para limpar respostas erradas, esvazie o cache de DNS com o comando -HUP.
O mDNSResponder é um vírus?
O verdadeiro roda de /usr/sbin e é iniciado por um launch daemon do sistema. Uma cópia que rode de qualquer outra pasta merece uma olhada mais atenta.
Por que o mDNSResponder pede acesso à rede ou usa dados?
O trabalho dele são consultas de rede e descoberta local, então ele usa a rede o tempo todo. O valor de dados reflete o que outros apps pedem e normalmente é pequeno.