Frage :Mein System braucht viel Zeit zum Booten. Wie kann ich herausfinden, welche Dienste lange brauchen, um zu starten?
Antwort :
systemd-analyze Der Befehl kann verwendet werden, um Informationen darüber zu erhalten, wie viel Zeit jeder Dienst zum Starten benötigt hat. systemd-analyze time kann allgemeine Informationen darüber liefern, wie lange es gedauert hat, bis das System gestartet wurde. Hier ist ein Befehl, der die Zeit anzeigt, die Kernel, Initrd und Userspace beim Booten benötigen.
# systemd-analyze time Startup finished in 1.267s (kernel) + 6.798s (initrd) + 1min 2.139s (userspace) = 1min 10.205s
Um herauszufinden, wie viel Zeit jede Einheit zum Starten benötigt hat, führen Sie systemd-analyze-Schuldgefühle aus .
# 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
Da die Ausgabe nach der Zeit sortiert ist, die jede Einheit benötigt, können Sie leicht herausfinden, welcher Dienst beim Booten mehr Zeit in Anspruch nimmt, und tiefer eintauchen, um das Problem zu analysieren.
Bei bestimmten Schritten kann der Start nicht fortgesetzt werden, bis alle Abhängigkeiten für die Einheit erfüllt sind. Um Einheiten an diesen kritischen Punkten zu sehen, führen Sie systemd-analyze critical-chain aus .
# 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
Ein SVG-Grafikbild kann geplottet werden, das Details zur Startzeit der Systemdienste enthält und die Zeit hervorhebt, die sie für die Initialisierung aufgewendet haben. Stellen Sie sicher, dass Sie den grafischen Anzeigemodus oder X-Fenster aktiviert haben, um den Plot zu sehen.
# systemd-analyze plot > plot.svg # eog plot.svg
Hier ist ein Ausschnitt aus dem Beispieldiagramm auf meinem CentOS 7-Computer. Zoomen Sie heran, um den Wasserfall deutlich zu sehen.