Lexique/Les processus que vous verrez
logd
Aussi : journalisation unifiée
En bref
logd est le processus de macOS qui fait tourner le journal unifié, l’enregistrement à l’échelle du système de ce que macOS et vos apps signalent pendant qu’ils tournent. Chaque processus confie ses messages de journal à logd, qui les compresse, garde les plus récents en mémoire et enregistre le reste dans un magasin de journaux sur le disque, où l’app Console et la commande log du Terminal les lisent.
Il n’y a qu’un seul logd, il tourne en tant que root, et launchd le lance au démarrage du Mac. Depuis macOS Sierra, la plupart des messages ne vont plus dans des fichiers texte de /var/log. Les apps les confient à logd, qui les stocke dans un format binaire compressé dans /var/db/diagnostics, le texte fixe de chaque message étant conservé dans /var/db/uuidtext. C’est pourquoi on lit le journal avec Console ou la commande log plutôt qu’en ouvrant un fichier.
Son utilisation du processeur et du disque suit la quantité de messages que le reste du Mac écrit. Sur un Mac calme, il utilise une fraction de pour cent. Quand logd est en haut de la liste, ce n’est presque jamais sa faute : un autre processus écrit des messages bien plus vite que d’habitude, et logd fait le travail de les stocker.
Sur cette page
Pourquoi logd utilise autant le processeur ou le disque
Une app ou un processus d’arrière-plan écrit dans le journal en boucle. Un processus qui échoue et réessaie plusieurs fois par seconde, comme un client réseau qui ne joint pas son serveur, une synchronisation bloquée ou un pilote qui signale la même erreur encore et encore, peut écrire des centaines de milliers de messages par minute. logd compresse et enregistre chacun d’eux, et son processeur et ses Octets écrits montent en conséquence.
Une journalisation supplémentaire activée pour un dépannage a le même effet. Un profil de journalisation installé pour un rapport de bug, ou un changement fait avec la commande log config, oblige logd à enregistrer des messages qu’il garderait normalement seulement en mémoire.
Que faire
Trouvez le processus qui inonde le journal et occupez-vous de lui, pas de logd. Dans le Terminal, log stats --last 5m classe les processus selon la quantité de messages écrits ces cinq dernières minutes. Quittez ou mettez à jour l’app en tête, ou redémarrez le Mac s’il s’agit d’un processus d’arrière-plan bloqué.
Si vous avez installé un profil de journalisation dont vous n’avez plus besoin, supprimez-le dans Réglages Système → Général → Gestion des appareils. Quitter logd n’aide pas : macOS le relance aussitôt, et le processus qui inonde le journal continue.
Comment trouver le processus qui inonde le journal
C’est logd qui stocke : la question utile est donc de savoir qui écrit. Le Moniteur d’activité montre le coût, et le Terminal montre le coupable.
- Ouvrez le Moniteur d’activité, cliquez sur l’onglet Processeur, choisissez Présentation → Toutes les opérations et tapez
logddans le champ de recherche. Notez son % processeur. - Cliquez sur l’onglet Disque et observez les Octets écrits de logd. Un chiffre qui grimpe vite signifie qu’il enregistre un flot de messages sur le disque.
- Videz le champ de recherche et triez l’onglet Processeur par % processeur. Le processus qui inonde le journal est souvent lui-même occupé, et il redémarre parfois en boucle, avec un nouveau PID à chaque fois.
- Ouvrez le Terminal et lancez
log stats --last 5m. Sous processes, il liste les processus qui ont le plus écrit dans le journal ces cinq dernières minutes, avec leur nombre d’événements et d’octets. WindowServer et quelques autres processus système écrivent beaucoup sur tous les Mac : cherchez donc un processus dont la part est inhabituelle, ou qui devrait être inactif. - Pour lire ce que dit ce processus, lancez
log show --last 5m --predicate 'process == "Name"'en remplaçant Name par le nom du processus. Pour le suivre en direct, utilisezlog streamavec le même prédicat, et appuyez sur Contrôle + C pour arrêter.
logd : usage normal ou problème
Normal : logd reste bien en dessous de quelques pour cent du processeur, avec de courtes hausses au démarrage du Mac, à la sortie de veille ou quand beaucoup d’apps s’ouvrent à la fois.
À surveiller : logd reste en haut de la liste Processeur pendant plusieurs minutes d’affilée, ou ses Octets écrits augmentent vite alors que vous faites peu de chose. Voici les causes habituelles :
- Un processus qui échoue et réessaie en boucle serrée, comme un client réseau qui ne joint pas son serveur ou une synchronisation bloquée.
- Un utilitaire qui plante et est relancé aussitôt, en consignant à chaque fois le même démarrage et le même échec.
- Une journalisation de débogage ou d’information activée avec
log config, ou par un profil de journalisation installé pour un rapport de bug. - Une app dont la journalisation détaillée est activée dans ses propres réglages, ou une version de test d’une app qui consigne tout.
- La Console laissée en diffusion en direct, ou un outil qui lit le journal en continu. Ce coût apparaît surtout dans diagnosticd, le compagnon de logd.
Lire le journal dans la Console
La Console, dans Applications → Utilitaires, affiche le même journal dans une fenêtre. Cliquez sur Démarrer dans la barre d’outils pour voir les messages à mesure qu’ils arrivent, et tapez un nom de processus dans le champ de recherche pour n’afficher que les messages qui le mentionnent. Quand un processus remplit l’écran plus vite que vous ne pouvez lire, vous avez trouvé ce qui occupe logd.
Arrêtez la diffusion quand vous avez fini. Tant que la Console affiche le journal en direct, diagnosticd et les processus qui écrivent dans le journal travaillent davantage, soit l’inverse de ce que vous voulez sur un Mac déjà occupé.
Questions fréquentes
logd sur Mac : de quoi s’agit-il ?
Le processus de macOS derrière le journal unifié. Chaque app et chaque processus système envoie ses messages de journal à logd, qui les compresse et les stocke pour que Console et la commande log puissent les afficher.
Pourquoi logd utilise-t-il autant le processeur ?
Presque toujours parce qu’un autre processus écrit des messages de journal en boucle, et que logd doit tous les stocker. Lancez log stats --last 5m dans le Terminal pour voir quel processus écrit le plus.
Peut-on supprimer les journaux que garde logd ?
Oui, mais il y a rarement une raison de le faire. macOS purge lui-même les anciens messages quand le magasin de journaux atteint sa taille limite : il ne grossit donc pas indéfiniment. Si vous devez le vider, sudo log erase --all supprime les messages stockés, ainsi que l’historique dont vous ou l’assistance Apple auriez besoin pour diagnostiquer un problème. Ne supprimez pas /var/db/diagnostics ou /var/db/uuidtext à la main.
Qu’est-ce que diagnosticd sur Mac ?
Une autre partie du système de journalisation unifiée. logd stocke les messages, et diagnosticd les transmet en direct à la Console et à log stream. Il n’utilise plus de processeur que lorsque l’un d’eux affiche le journal en direct.
Peut-on quitter logd sans risque ?
Cela ne fait pas de dégât durable, car macOS le relance aussitôt, mais cela ne sert à rien non plus. Le processus qui inondait le journal continue, et logd reprend le travail dès qu’il redémarre.
Voir aussi
Vous cherchez mieux que le Moniteur d’activité ? Consultez les meilleures alternatives au Moniteur d’activité pour Mac, ou parcourez tous les termes du lexique.