Por qué mDNSResponder usa tanta CPU en mi Mac
mDNSResponder es el proceso de macOS que atiende las consultas DNS de todas las apps y encuentra dispositivos de tu red local mediante Bonjour. Es una parte normal del sistema, se ejecuta desde /usr/sbin/mDNSResponder con su propia cuenta _mdnsresponder y, en un Mac sano, se queda cerca del 0 % de CPU. Cuando sigue ocupado, casi siempre trabaja para otra cosa, como un navegador, una VPN o una red muy ruidosa, así que la solución es encontrar ese origen y no detener el proceso.
Qué hace
Su página del manual (man mDNSResponder) describe un demonio que implementa Multicast DNS y DNS Service Discovery, hace consultas DNS en nombre de otros procesos y guarda una caché con las respuestas. Por eso el nombre aparece tanto en Monitor de Actividad y en las herramientas de red: cuando una app pide una dirección, quien la pide es este proceso.
Un segundo proceso, mDNSResponderHelper, se ejecuta como root a su lado. En el Mac usado para esta página, los dos se veían así en reposo:
_mdnsresponder 0.0% CPU /usr/sbin/mDNSResponder
root 0.0% CPU /usr/sbin/mDNSResponderHelper
Encuentra qué lo está activando
Abre Monitor de Actividad, ve a la pestaña CPU y observa mDNSResponder durante un minuto. Un pico corto es normal. Si se mantiene alto, cambia una sola cosa cada vez:
- Cierra los navegadores y las apps que abren muchas conexiones, y comprueba si la cifra baja en un minuto.
- Desactiva cualquier VPN, proxy o filtro DNS, porque cambian cómo se enruta cada consulta.
- Conéctate a otra red, por ejemplo la conexión compartida de tu teléfono. Si la carga desaparece, la causa está en la red anterior.
- Para ver qué anuncia tu red, ejecuta esto unos segundos y pulsa
Ctrl + Cpara detenerlo:
dns-sd -B _services._dns-sd._udp local
Una lista larga y que cambia sin parar apunta a una red con muchos dispositivos Bonjour.
| Qué ves | Causa probable | Qué probar |
|---|---|---|
| Un pico al abrir un navegador o una app | Consultas normales | Nada |
| CPU alta solo con una VPN o un proxy activos | Su configuración DNS o su filtro | Actualízalo o revisa su configuración DNS |
| CPU alta solo en una red | Muchos dispositivos Bonjour, o alguno que falla | Prueba otra red y reinicia el router o el dispositivo sospechoso |
| Las webs fallan o muestran direcciones antiguas | Una respuesta DNS caducada o incorrecta | Vacía la caché DNS |
| Mucho consumo de datos a su nombre | Consultas y descubrimiento local | Consulta qué app está usando mi red |
Es seguro reiniciarlo
Vaciar la caché DNS envía una señal al proceso, y es la forma admitida de borrarla:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Tarda un momento y pide tu contraseña. Reiniciar el Mac hace el mismo trabajo. Vaciar la caché solo ayuda con respuestas incorrectas o caducadas, así que si el proceso está ocupado porque una app no deja de preguntar, la carga vuelve.
Es malware
El archivo auténtico está en /usr/sbin/mDNSResponder, en el volumen del sistema, y macOS lo inicia desde /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist. Para comprobar qué se está ejecutando, mira la ruta en el inspector de Monitor de Actividad o ejecuta:
ps -axo user,pid,args | grep '[m]DNSResponder'
Desconfía de un proceso con este nombre que se ejecute desde otra carpeta, como tu carpeta de inicio o /tmp. Una ruta correcta es buena evidencia, pero no te dice qué app provoca las consultas.
Qué no hacer
- No intentes desactivarlo. La Protección de integridad del sistema protege ese demonio de arranque y, sin este proceso, la resolución de nombres de todo el Mac deja de funcionar.
- No uses
kill -9en lugar de-HUP. La forma-HUPes la que indica el artículo de soporte archivado de Apple. - No tomes un consumo alto de datos por una descarga. El tráfico son consultas y descubrimiento, y lo causa la actividad de otras apps.
- No instales un «acelerador de red» ni un limpiador de DNS por esto. Ninguno te dice quién está preguntando.
Dónde encaja Mole
Mole muestra mDNSResponder en Estado con su CPU y su memoria cuando está ocupado, y la búsqueda de la tabla lo encuentra cuando no lo está. ¿Por qué se ejecuta? en su menú muestra el ejecutable y qué lo inició. macOS no deja que Mole lea los puertos de esta cuenta del sistema, así que no aparece una lista de puertos. Como es un servicio de red del sistema, Mole no ofrece ninguna forma de detenerlo. Mole Mac no vacía la caché DNS ni cambia los ajustes de DNS o de red, así que para eso usa el comando de Terminal de arriba. La lista de Red por app, que se abre al hacer clic en las velocidades de red de la barra de menús, también puede mostrarlo, lo que ayuda a distinguir las consultas del tráfico real de una app.
Preguntas frecuentes
¿Qué es mDNSResponder en Mac?
Es el proceso del sistema que hace las consultas DNS de las apps y encuentra dispositivos de la red local mediante Bonjour. Se ejecuta desde /usr/sbin/mDNSResponder.
¿Por qué mDNSResponder usa tanta CPU?
Normalmente algo le hace hacer muchas consultas o mucho descubrimiento: una app, una VPN o un filtro DNS, o una red muy activa. Cambia esas cosas una por una y observa la cifra.
¿Puedo cerrar o desactivar mDNSResponder?
No lo desactives. La resolución de nombres de todo el Mac depende de él. Para borrar respuestas incorrectas, vacía la caché DNS con el comando -HUP.
¿mDNSResponder es un virus?
El auténtico se ejecuta desde /usr/sbin y se inicia desde un demonio de arranque del sistema. Una copia que se ejecute desde cualquier otra carpeta merece una revisión más atenta.
¿Por qué mDNSResponder pide acceso a la red o consume datos?
Su trabajo son las consultas de red y el descubrimiento local, así que usa la red todo el tiempo. Su cifra de datos refleja lo que piden otras apps y normalmente es pequeña.