Glossário/Processos que você vai ver
logd
Também: registro unificado
Resposta rápida
logd é o processo do macOS que executa o registro unificado, o registro de todo o sistema com o que o macOS e os seus apps relatam enquanto rodam. Cada processo entrega as mensagens de log ao logd, que as comprime, mantém as recentes na memória e salva o resto em um armazenamento de logs no disco, de onde o app Console e o comando log no Terminal as leem.
Existe um único logd, ele roda como root e o launchd o inicia quando o Mac liga. Desde o macOS Sierra, a maioria das mensagens não vai mais para arquivos de texto em /var/log. Os apps as entregam ao logd, que as guarda em um formato binário comprimido em /var/db/diagnostics, com o texto fixo de cada mensagem guardado em /var/db/uuidtext. É por isso que você lê o log com o Console ou com o comando log, e não abrindo um arquivo.
O uso de CPU e de disco dele acompanha o quanto o resto do Mac está registrando. Em um Mac tranquilo, ele usa uma fração de um por cento. Quando o logd está perto do topo da lista, quase nunca é culpa dele: outro processo está escrevendo mensagens muito mais rápido do que o normal, e o logd está fazendo o trabalho de guardá-las.
Nesta página
Por que o logd está usando tanta CPU ou disco
Um app ou processo em segundo plano está registrando em loop. Um processo que falha e tenta de novo muitas vezes por segundo, como um cliente de rede que não alcança o servidor, uma sincronização travada ou um driver que relata o mesmo erro sem parar, pode escrever centenas de milhares de mensagens por minuto. O logd comprime e salva cada uma, e a CPU e os Bytes Gravados dele sobem junto.
Um registro extra ativado para solucionar problemas tem o mesmo efeito. Um perfil de registro instalado para um relatório de bug, ou uma mudança feita com o comando log config, faz o logd salvar mensagens que normalmente ele só manteria na memória.
O que fazer
Encontre o processo que está inundando o log e resolva esse processo, não o logd. No Terminal, log stats --last 5m classifica os processos pelo quanto registraram nos últimos cinco minutos. Encerre ou atualize o app que estiver no topo, ou reinicie o Mac se for um processo em segundo plano travado.
Se você instalou um perfil de registro de que não precisa mais, remova-o em Ajustes do Sistema → Geral → Gerenciamento de Dispositivos. Encerrar o logd não ajuda: o macOS o inicia de novo na hora, e o processo que está inundando o log continua.
Como encontrar o processo que está inundando o log
O logd é quem armazena, então a pergunta útil é quem está escrevendo. O Monitor de Atividade mostra o custo e o Terminal mostra o culpado.
- Abra o Monitor de Atividade, clique na aba CPU, escolha Visualizar → Todos os Processos e digite
logdno campo de busca. Anote a % CPU dele. - Clique na aba Disco e observe os Bytes Gravados do logd. Um valor que sobe rápido significa que ele está salvando uma enxurrada de mensagens no disco.
- Limpe o campo de busca e ordene a aba CPU por % CPU. O processo que está inundando o log muitas vezes também está ocupado, e pode estar reiniciando sem parar, com um PID novo a cada vez.
- Abra o Terminal e execute
log stats --last 5m. Em processes, ele lista os processos que mais registraram nos últimos cinco minutos, com o número de eventos e de bytes. O WindowServer e alguns outros processos do sistema registram muito em qualquer Mac, então procure um processo com uma fatia fora do comum, ou um que deveria estar ocioso. - Para ler o que esse processo está dizendo, execute
log show --last 5m --predicate 'process == "Name"', com o nome do processo no lugar de Name. Para acompanhar ao vivo, uselog streamcom o mesmo predicado e pressione Control-C para parar.
Uso normal do logd ou sinal de problema
Normal: o logd fica bem abaixo de alguns por cento de CPU, com subidas curtas quando o Mac liga, sai do repouso ou quando muitos apps abrem ao mesmo tempo.
Vale investigar: o logd fica perto do topo da lista de CPU por minutos seguidos, ou os Bytes Gravados dele continuam crescendo rápido enquanto você faz pouca coisa. Estas são as causas comuns:
- Um processo que falha e tenta de novo em um loop apertado, como um cliente de rede que não alcança o servidor ou uma sincronização travada.
- Um auxiliar que trava e é iniciado de novo na mesma hora, registrando a mesma inicialização e a mesma falha a cada vez.
- Registro de depuração ou de informações ativado com
log config, ou por um perfil de registro instalado para um relatório de bug. - Um app com registro detalhado ativado nos próprios ajustes, ou uma versão de teste de um app que registra tudo.
- O Console deixado transmitindo ao vivo, ou uma ferramenta que lê o log ao vivo o tempo todo. Esse custo aparece principalmente no diagnosticd, o companheiro do logd.
Como ler o log no Console
O Console, em Aplicativos → Utilitários, mostra o mesmo log em uma janela. Clique em Iniciar na barra de ferramentas para ver as mensagens conforme chegam e digite o nome de um processo no campo de busca para mostrar só as mensagens que o mencionam. Quando um processo enche a tela mais rápido do que você consegue ler, você encontrou o que ocupa o logd.
Pare a transmissão quando terminar. Enquanto o Console mostra o log ao vivo, o diagnosticd e os processos que registram fazem trabalho extra, o oposto do que você quer em um Mac que já está ocupado.
Perguntas frequentes
O que é logd no Mac?
O processo do macOS por trás do registro unificado. Todo app e processo do sistema envia as mensagens de log ao logd, que as comprime e guarda para que o Console e o comando log possam mostrá-las.
Por que o logd está com CPU alta?
Quase sempre porque outro processo está escrevendo mensagens de log em loop, e o logd precisa guardar todas. Execute log stats --last 5m no Terminal para ver qual processo está registrando mais.
Posso apagar os logs que o logd guarda?
Pode, mas raramente há motivo. O macOS descarta sozinho as mensagens antigas quando o armazenamento de logs chega ao limite de tamanho, então ele não cresce sem fim. Se você precisar limpá-lo, sudo log erase --all remove as mensagens guardadas, junto com o histórico de que você ou o Suporte da Apple precisariam para diagnosticar um problema. Não apague /var/db/diagnostics nem /var/db/uuidtext à mão.
O que é o diagnosticd no Mac?
Outra parte do sistema de registro unificado. O logd armazena as mensagens, e o diagnosticd as entrega ao vivo para o Console e para o log stream. Ele só usa mais CPU enquanto um desses está mostrando o log ao vivo.
É seguro encerrar o logd?
Não causa dano duradouro, porque o macOS o inicia de novo na hora, mas também não ajuda. O processo que estava inundando o log continua, e o logd retoma o trabalho assim que reinicia.
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.