¿Cómo evitar que mDNSResponder utilice el 90-100% de la CPU continuamente en Catalina?

Acabo de actualizar mi MacBook Pro de 15″ de 2018 de Mojave a Catalina (10.15.4). Lleva unas cuantas horas.

Una de las primeras cosas que hice después de la actualización fue editar un vídeo usando la nueva prueba gratuita de Final Cut Pro X. Los ventiladores de refrigeración de mi portátil funcionaban a toda velocidad todo el tiempo, pero siempre había renderizado de fondo, así que supuse que era normal.

Cuando terminé y salí de FCP, los ventiladores no se apagaron, así que revisé el Monitor de Actividad y descubrí que mDNSResponder está tomando el 90-100% de la CPU continuamente. La columna de hilos en el Monitor de Actividad indica 3-4 hilos la mayor parte del tiempo; el 100% se reparte entre todos ellos, y no están todos en el mismo núcleo. No estoy seguro de cómo se las arregla para hacer eso y todavía se sientan en o justo por debajo del 100% la mayor parte del tiempo, pero eso es lo que está haciendo.

Captura de pantalla del Monitor de Actividad

El portátil tiene seis núcleos (12 lógicos), por lo que tener un núcleo totalmente ocupado no supone una diferencia notable en el rendimiento (a menos que empiece a medir el tiempo que tardan las cosas – pero eso es notar que los números son diferentes – ¡no que el rendimiento sea diferente!).

Nota: En el conjunto, los gráficos de barras muestran más de un núcleo completo siendo utilizado. Esto es lo esperado. Tengo una búsqueda aplicada en mi captura de pantalla del Monitor de Actividad, y hay un montón de otras cosas en marcha – Slack está abierto, Chrome con oncecientos millones de pestañas, IntelliJ IDEA probablemente está indexando algo, y así sucesivamente.

Intenté reiniciar mDNSResponder usando estos comandos:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plistsudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Vi el proceso desaparecer, así que sé que el comando funcionó, pero inmediatamente volvió al 100% de uso de la CPU cuando lo inicié de nuevo. mDNSResponderHelper no se detuvo, así que lo intenté de nuevo, insertando sudo killall mDNSResponderHelper como paso intermedio. Esto hizo que ambos procesos desaparecieran como pretendía, pero siguió sin solucionar el problema.

También probé a enviar una señal HUP a mDNSResponder de la siguiente manera:

sudo killall -HUP mDNSResponder

Esto tampoco tuvo efecto.

Abrí la Consola, introduje mdnsresponder en el campo de búsqueda y observé el flujo de mensajes durante un minuto o dos. Algunas cosas sobre Bonjour, montones de <private>, y algunos registros de consultas DNS de aspecto bastante normal. Intenté desactivar tanto el Bluetooth como el Wifi con la esperanza de afectar a Bonjour, pero tengo una conexión Ethernet por cable (que no desconecté) y no pareció tener ningún efecto.

Después de escribir esto, me di cuenta de que cloudphotosd también estaba ocupando una buena parte de la CPU. Supuse que se trataba del famoso proceso de reindexación que se produce con frecuencia después de las actualizaciones del sistema operativo, que recorre mi biblioteca de fotos (bastante grande), actualizando los metadatos en función de las nuevas características que vienen con Catalina, y subiendo esos cambios a iCloud. Eso explicaría alguna actividad constante en la red, y entonces pensé que tal vez eso explicaría la actividad de mDNSResponder. Así que dejé esta ventana abierta sin enviar y esperé un rato para ver si cloudphotosd se calmaba. Lo hizo, pero mDNSResponder no. Finalmente, intenté reiniciar mi Mac; mDNSResponder no perdió el tiempo y volvió a funcionar. Sin aplicaciones que se ejecutan después de un nuevo arranque, ya estaba constantemente sentado en o justo por debajo del 100%, al igual que antes.

Este es un sitio de Q&A, y no he hecho una pregunta, así que aquí va: ¿cómo puedo averiguar lo que está haciendo, y cómo puedo hacer que se detenga?

Actualización: ha sido casi 48 horas y todavía está agitando lejos. Ahora la duración de mi batería es una mierda. He observado que cerrar la tapa del portátil parece hacer que se detenga, pero vuelve enseguida cuando la abro de nuevo. También he notado un síntoma adicional: las primeras búsquedas de DNS después de un reinicio toman ~2 segundos (yo esperaría <200ms). No estoy seguro de si eso es simplemente un efecto secundario de mDNSResponder estar tan ocupado haciendo lo que sea que está haciendo o si está relacionado con la causa.

UPDATE 2: ha sido más de tres semanas. He añadido una recompensa de 100 rep. El retraso en la búsqueda de DNS ha aumentado; a menudo tarda entre 20 y 30 segundos, y aunque parece que hay algo de caché, creo que tiene una caducidad basada en el tiempo, porque el retraso vuelve a producirse más tarde sin reiniciar. Estoy feliz de interactuar directamente con alguien con conocimientos suficientes para depurar y diagnosticar este problema. Estoy en el horario de verano de los Estados Unidos (UTC-4) y generalmente estoy disponible durante las horas de trabajo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.