Glosario/Procesos que verás

logd

También: registro unificado

Respuesta rápida

logd es el proceso de macOS que lleva el registro unificado, el registro de todo el sistema con lo que macOS y tus apps informan mientras funcionan. Cada proceso le pasa sus mensajes de registro a logd, que los comprime, guarda los recientes en memoria y el resto en un almacén de registros en el disco, donde los leen la app Consola y el comando log de Terminal.

Hay un solo logd, se ejecuta como root y launchd lo inicia cuando arranca el Mac. Desde macOS Sierra, la mayoría de los mensajes ya no van a archivos de texto en /var/log. Las apps se los pasan a logd, que los guarda en un formato binario comprimido en /var/db/diagnostics, con el texto fijo de cada mensaje en /var/db/uuidtext. Por eso el registro se lee con la Consola o con el comando log en lugar de abriendo un archivo.

Su uso de CPU y de disco depende de cuánto esté registrando el resto del Mac. En un Mac tranquilo usa una fracción de un uno por ciento. Cuando logd está cerca de arriba en la lista, casi nunca es culpa del propio logd: otro proceso está escribiendo mensajes mucho más rápido de lo normal, y logd hace el trabajo de guardarlos.

Por qué logd usa tanta CPU o disco

Una app o un proceso en segundo plano está registrando en bucle. Un proceso que falla y reintenta muchas veces por segundo, como un cliente de red que no llega a su servidor, una sincronización atascada o un controlador que informa del mismo error una y otra vez, puede escribir cientos de miles de mensajes por minuto. logd comprime y guarda cada uno, y su CPU y sus “Bytes escritos” suben con ellos.

Activar un registro extra para diagnosticar problemas tiene el mismo efecto. Un perfil de registro instalado para un informe de errores, o un cambio hecho con el comando log config, hace que logd guarde mensajes que normalmente solo mantendría en memoria.

Qué hacer al respecto

Encuentra el proceso que está inundando el registro y ocúpate de ese proceso, no de logd. En Terminal, log stats --last 5m ordena los procesos según cuánto han registrado en los últimos cinco minutos. Cierra o actualiza la app que aparece arriba, o reinicia el Mac si es un proceso en segundo plano atascado.

Si instalaste un perfil de registro que ya no necesitas, elimínalo en Ajustes del Sistema → General → Gestión de dispositivos. Cerrar logd no ayuda: macOS lo vuelve a abrir al instante, y el proceso que inunda el registro sigue igual.

Cómo encontrar el proceso que está inundando el registro

logd es el que guarda, así que la pregunta útil es quién está escribiendo. Monitor de Actividad muestra el coste y Terminal muestra al culpable.

  1. Abre Monitor de Actividad, haz clic en la pestaña CPU, elige Visualización → Todos los procesos y escribe logd en el campo de búsqueda. Anota su % CPU.
  2. Haz clic en la pestaña Disco y observa los “Bytes escritos” de logd. Una cifra que sube deprisa significa que está guardando en el disco una avalancha de mensajes.
  3. Borra el campo de búsqueda y ordena la pestaña CPU por % CPU. El proceso que inunda el registro suele estar ocupado él también, y puede que se esté reiniciando una y otra vez con un PID nuevo cada vez.
  4. Abre Terminal y ejecuta log stats --last 5m. En el apartado processes aparecen los procesos que más han registrado en los últimos cinco minutos, con su número de eventos y de bytes. WindowServer y algunos otros procesos del sistema registran mucho en cualquier Mac, así que busca un proceso con una parte inusual, o uno que debería estar inactivo.
  5. Para leer lo que dice ese proceso, ejecuta log show --last 5m --predicate 'process == "Name"', con el nombre del proceso en lugar de Name. Para verlo en directo, usa log stream con el mismo predicado, y pulsa Control-C para detenerlo.

Uso normal de logd frente a un problema

Normal: logd se queda muy por debajo de un pequeño porcentaje de CPU, con subidas cortas cuando el Mac arranca, sale del reposo o cuando se abren muchas apps a la vez.

Merece la pena revisarlo si logd se mantiene cerca de arriba en la lista de CPU durante minutos seguidos, o si sus “Bytes escritos” siguen creciendo deprisa mientras apenas haces nada. Estas son las causas habituales:

  • Un proceso que falla y vuelve a intentarlo en un bucle cerrado, como un cliente de red que no llega a su servidor o una sincronización atascada.
  • Un proceso auxiliar que se bloquea y se vuelve a iniciar al momento, registrando cada vez el mismo arranque y el mismo fallo.
  • El registro de depuración o de información activado con log config, o por un perfil de registro instalado para un informe de errores.
  • Una app con el registro detallado activado en sus propios ajustes, o una versión de prueba de una app que lo registra todo.
  • La Consola mostrando el registro en directo sin cerrarla, o una herramienta que lee el registro en directo todo el tiempo. Ese coste aparece sobre todo en diagnosticd, el compañero de logd.

Leer el registro en la Consola

La Consola, en Aplicaciones → Utilidades, muestra el mismo registro en una ventana. Haz clic en Iniciar en la barra de herramientas para ver los mensajes a medida que llegan, y escribe el nombre de un proceso en el campo de búsqueda para ver solo los mensajes que lo mencionan. Cuando un proceso llena la pantalla más rápido de lo que puedes leer, ya sabes con qué está ocupado logd.

Detén la transmisión cuando termines. Mientras la Consola muestra el registro en directo, diagnosticd y los procesos que registran hacen trabajo extra, justo lo contrario de lo que quieres en un Mac que ya está ocupado.

Preguntas frecuentes

¿Qué es logd en el Mac?

El proceso de macOS detrás del registro unificado. Cada app y cada proceso del sistema envía sus mensajes de registro a logd, que los comprime y los guarda para que la Consola y el comando log puedan mostrarlos.

¿Por qué logd usa mucha CPU?

Casi siempre porque otro proceso está escribiendo mensajes de registro en bucle, y logd tiene que guardarlos todos. Ejecuta log stats --last 5m en Terminal para ver qué proceso está registrando más.

¿Puedo borrar los registros que guarda logd?

Puedes, pero rara vez hay motivo. macOS elimina por sí solo los mensajes antiguos cuando el almacén de registros llega a su límite de tamaño, así que no crece sin fin. Si necesitas vaciarlo, sudo log erase --all elimina los mensajes guardados, junto con el historial que necesitarías tú, o el soporte de Apple, para diagnosticar un problema. No borres /var/db/diagnostics ni /var/db/uuidtext a mano.

¿Qué es diagnosticd en el Mac?

Otra parte del sistema de registro unificado. logd guarda los mensajes, y diagnosticd los entrega en directo a la Consola y a log stream. Solo usa más CPU mientras uno de ellos muestra el registro en directo.

¿Es seguro cerrar logd?

No causa ningún daño duradero, porque macOS lo vuelve a abrir al instante, pero tampoco sirve de nada. El proceso que inundaba el registro sigue igual, y logd retoma el trabajo en cuanto se reinicia.

Relacionado

¿Buscas algo mejor que Monitor de Actividad? Consulta las mejores alternativas a Monitor de Actividad para Mac, o explora todos los términos del glosario.