GNU/Linux >> Tutoriels Linux >  >> Cent OS

CentOS / RHEL 7 :commande systemd-analyze pour trouver les délais de démarrage

Question :Mon système met beaucoup de temps à démarrer. Comment puis-je savoir quels services mettent du temps à démarrer ?

Réponse :

systemd-analyse La commande peut être utilisée pour trouver des informations sur la durée de démarrage de chaque service. temps d'analyse systemd peut fournir des informations générales sur le temps qu'il a fallu au système pour démarrer. Voici une commande out qui montre clairement le temps pris par le noyau, initrd et l'espace utilisateur lors du démarrage.

# systemd-analyze time
Startup finished in 1.267s (kernel) + 6.798s (initrd) + 1min 2.139s (userspace) = 1min 10.205s

Pour savoir combien de temps chaque unité a mis à démarrer, exécutez systemd-analyze blame .

# systemd-analyze blame
         24.728s dev-mapper-centosx2droot.device
         15.135s kdump.service
         14.670s plymouth-quit-wait.service
         14.210s firewalld.service
          9.835s accounts-daemon.service
          7.383s ModemManager.service
          7.259s libvirtd.service
          7.257s systemd-logind.service
          7.177s ksm.service
          7.081s gssproxy.service
          7.067s avahi-daemon.service
          7.062s rsyslog.service
          7.039s abrt-ccpp.service

Comme vous voyez que la sortie est triée en fonction du temps pris par chaque unité, vous pouvez facilement savoir quel service prend le plus de temps lors du démarrage et creuser plus profondément pour analyser le problème.

À certaines étapes, le démarrage ne peut pas se poursuivre tant que toutes les dépendances de l'unité ne sont pas satisfaites. Pour voir les unités à ces points critiques, exécutez systemd-analyze critical-chain .

# systemd-analyze critical-chain
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.

graphical.target @1min 2.102s
└─multi-user.target @1min 2.102s
  └─abrt-vmcore.service @1min 1.228s +872ms
    └─kdump.service @46.090s +15.135s
      └─remote-fs.target @46.086s
        └─remote-fs-pre.target @46.083s
          └─iscsi-shutdown.service @45.951s +99ms
            └─network.target @45.944s
              └─network.service @44.959s +975ms
                └─NetworkManager.service @38.653s +689ms
                  └─firewalld.service @24.439s +14.210s
                    └─basic.target @23.850s
                      └─sockets.target @23.849s
                        └─cups.socket @23.847s
                          └─sysinit.target @23.618s
                            └─systemd-update-utmp.service @23.603s +13ms
                              └─auditd.service @22.959s +643ms
                                └─systemd-tmpfiles-setup.service @22.726s +230ms
                                  └─rhel-import-state.service @22.431s +294ms
                                    └─local-fs.target @22.428s
                                      └─boot.mount @19.675s +2.126s
                                        └─dev-disk-byx2duuid-7de2053cx2d44d7x2d4f33x2db522x2d81dee2f6b69b.device @19.652s

L'image graphique SVG peut être un tracé contenant des détails sur l'heure de démarrage des services système, mettant en évidence le temps passé à l'initialisation. Assurez-vous d'avoir activé le mode d'affichage graphique ou d'avoir activé x-windows afin de voir le tracé.

# systemd-analyze plot > plot.svg
# eog plot.svg

Voici un extrait d'un exemple de tracé sur ma machine CentOS 7. Zoomez pour vérifier clairement la cascade.


Cent OS
  1. Comment redémarrer le service réseau sur CentOS 8 ou RHEL 8

  2. Pare-feu CentOS / RHEL 7 :référence de la ligne de commande (aide-mémoire)

  3. CentOS / RHEL 7 :Ne lancez jamais le service iptables et le service FirewallD en même temps !

  4. CentOS / RHEL 7 :Comment changer de fuseau horaire

  5. CentOS / RHEL 7 :impossible de démarrer le service vsftpd

Comment installer le mastic dans RHEL 8 / CentOS 8

26 exemples de commandes DNF dans Fedora / CentOS / RHEL

Comment changer le fuseau horaire dans CentOS 8 / RHEL 8

Comment installer Scala 3 sur RHEL 8 / CentOS 8

CentOS / RHEL 7 :processus de démarrage

Comment résoudre les problèmes de latence de transfert NFS à l'aide de "nfsiostat" dans CentOS / RHEL