Diagnostic du démarrage Linux avec systemd-analyze
Avec plaisir. Voici une fiche que tu peux intégrer directement dans ton wiki.
systemd-analyze – Analyse du démarrage sous Linux
Présentation
systemd-analyze est un outil fourni avec systemd permettant d’analyser le processus de démarrage d’un système Linux.
Il permet notamment de :
- mesurer le temps de démarrage ;
- identifier les services les plus lents ;
- comprendre les dépendances entre services ;
- détecter les erreurs au démarrage ;
- diagnostiquer les problèmes après une mise à jour.
Temps total de démarrage
systemd-analyze
Exemple :
Startup finished in 5.742s (firmware) + 3.241s (loader) + 4.931s (kernel) + 21.103s (userspace) = 35.018s
graphical.target reached after 21.087s in userspace.
Interprétation
- Firmware : temps passé dans le BIOS/UEFI.
- Loader : temps de GRUB.
- Kernel : démarrage du noyau Linux.
- Userspace : démarrage des services systemd.
Services les plus lents
systemd-analyze blame
Exemple :
25.708s snapd.seeded.service
6.524s NetworkManager-wait-online.service
2.620s docker.service
Cette commande classe les services par durée de démarrage.
Attention : Un service long n’est pas forcément responsable d’un démarrage lent. Certains services démarrent en parallèle.
Chaîne critique du démarrage (commande recommandée)
systemd-analyze critical-chain
Exemple :
graphical.target
└─multi-user.target
└─snapd.seeded.service
└─basic.target
Cette commande affiche la chaîne de dépendances qui détermine réellement le temps de démarrage.
C’est généralement la commande la plus utile pour comprendre pourquoi un système démarre lentement.
Vérifier les services en erreur
systemctl --failed
Affiche tous les services ayant échoué.
Exemple :
UNIT LOAD ACTIVE SUB DESCRIPTION
example.service loaded failed failed Example Service
Consulter les erreurs du dernier démarrage
sudo journalctl -b -p err
Affiche uniquement les erreurs du démarrage courant.
Très utile après :
- une mise à jour ;
- un changement de noyau ;
- une modification de configuration.
Consulter les avertissements et erreurs du noyau
sudo dmesg --level=err,warn
Permet d’identifier :
- problèmes matériels ;
- pilotes ;
- GPU ;
- stockage ;
- réseau.
Générer une chronologie graphique du démarrage
systemd-analyze plot > boot.svg
Puis ouvrir le graphique :
xdg-open boot.svg
Le fichier SVG représente visuellement le démarrage de tous les services systemd.
Très pratique pour repérer les blocages ou les parallélismes.
Vérifier un fichier systemd
systemd-analyze verify /etc/systemd/system/mon-service.service
Permet de détecter :
- erreurs de syntaxe ;
- dépendances invalides ;
- directives inconnues.
Bonnes pratiques
Après une mise à jour importante (nouveau noyau, Ubuntu, Debian, etc.), il est recommandé d’exécuter :
systemd-analyze
systemd-analyze blame | head -20
systemd-analyze critical-chain
systemctl --failed
sudo journalctl -b -p err
sudo dmesg --level=err,warn
Cette séquence fournit une vision complète de l’état du système :
- temps de démarrage ;
- services les plus lents ;
- dépendances critiques ;
- services en échec ;
- erreurs système ;
- avertissements du noyau.
Exemple d’analyse
Lors d’une maintenance sur un poste Ubuntu 24.04 LTS après passage au noyau 7.0, cette analyse a permis de :
- identifier deux anciens services
systemddevenus inutiles (lxc-tunnel.serviceetmariadb-tunnel.service) ; - supprimer des tunnels SSH obsolètes ;
- éliminer des erreurs
autosshau démarrage ; - réduire le temps de démarrage d’environ 10 secondes ;
- confirmer que les messages restants (
SGX,Bluetooth SAP,Intel LSPCON,GNOME) étaient bénins.
Conclusion
systemd-analyze est un outil indispensable pour l’administration d’un système Linux moderne.
Les commandes les plus utiles sont :
| Commande | Utilité |
|---|---|
systemd-analyze
|
Temps global de démarrage |
systemd-analyze blame
|
Services les plus lents |
systemd-analyze critical-chain ⭐
|
Dépendances critiques du démarrage |
systemctl --failed
|
Services en erreur |
journalctl -b -p err
|
Erreurs du dernier démarrage |
dmesg --level=err,warn
|
Messages du noyau |
systemd-analyze plot
|
Chronologie graphique |
systemd-analyze verify
|
Vérification d’un fichier .service
|