Einsatz und Auswertung des Analysewerkzeugs systemd-analyze: Unterschied zwischen den Versionen
| Zeile 15: | Zeile 15: | ||
Dieser Befehl zeigt einen Baum der zeitkritischen Einheitenkette (für jede der angegebenen UNITs oder andernfalls für das Standardziel). Die Zeit, nachdem das Gerät aktiv oder gestartet wurde, wird nach dem „@“-Zeichen gedruckt. Die Zeit, die das Gerät zum Starten benötigt, wird nach dem „+“-Zeichen gedruckt. Beachten Sie, dass die Ausgabe irreführend sein kann, da die Initialisierung von Diensten von der Socket-Aktivierung und der parallelen Ausführung von Units abhängen kann. Außerdem berücksichtigt dies, ähnlich wie der Schuldzuweisungsbefehl, nur die Zeiteinheiten, die im "Aktivierungs"-Zustand verbracht wurden, und deckt daher keine Einheiten ab, die nie einen "Aktivierungs"-Zustand durchlaufen haben (z. B. Geräteeinheiten, die direkt von "inaktiv" wechseln). auf „aktiv“). Außerdem werden keine Informationen zu Jobs angezeigt (insbesondere nicht zu Jobs, die abgelaufen sind). | Dieser Befehl zeigt einen Baum der zeitkritischen Einheitenkette (für jede der angegebenen UNITs oder andernfalls für das Standardziel). Die Zeit, nachdem das Gerät aktiv oder gestartet wurde, wird nach dem „@“-Zeichen gedruckt. Die Zeit, die das Gerät zum Starten benötigt, wird nach dem „+“-Zeichen gedruckt. Beachten Sie, dass die Ausgabe irreführend sein kann, da die Initialisierung von Diensten von der Socket-Aktivierung und der parallelen Ausführung von Units abhängen kann. Außerdem berücksichtigt dies, ähnlich wie der Schuldzuweisungsbefehl, nur die Zeiteinheiten, die im "Aktivierungs"-Zustand verbracht wurden, und deckt daher keine Einheiten ab, die nie einen "Aktivierungs"-Zustand durchlaufen haben (z. B. Geräteeinheiten, die direkt von "inaktiv" wechseln). auf „aktiv“). Außerdem werden keine Informationen zu Jobs angezeigt (insbesondere nicht zu Jobs, die abgelaufen sind). | ||
*systemd-analyze critical-chain | *systemd-analyze critical-chain | ||
| + | =systemd-analyze dump [pattern…]= | ||
| + | Ohne Parameter gibt dieser Befehl eine (normalerweise sehr lange) menschenlesbare Serialisierung des vollständigen Service-Manager-Zustands aus. Optional kann ein Glob-Muster angegeben werden, wodurch die Ausgabe auf Einheiten beschränkt wird, deren Namen mit einem der Muster übereinstimmen. Das Ausgabeformat kann ohne Vorankündigung geändert werden und sollte nicht von Anwendungen geparst werden. | ||
=Links= | =Links= | ||
*https://www.freedesktop.org/software/systemd/man/systemd-analyze.html | *https://www.freedesktop.org/software/systemd/man/systemd-analyze.html | ||
Version vom 3. Januar 2023, 16:53 Uhr
Beschreibung
systemd-analyze kann verwendet werden, um Leistungsstatistiken beim Systemstart zu ermitteln und andere Zustands- und Ablaufverfolgungsinformationen vom System- und Dienstmanager abzurufen und die Korrektheit von Unit-Dateien zu überprüfen. Es wird auch verwendet, um auf spezielle Funktionen zuzugreifen, die für das erweiterte Systemmanager-Debugging nützlich sind.
- Wenn kein Befehl übergeben wird, wird systemd-analyze time impliziert.=
systemd-analyze time
Dieser Befehl gibt die Zeit aus, die im Kernel verbracht wurde, bevor der Userspace erreicht wurde, die Zeit, die in der initrd verbracht wurde, bevor der normale System-Userspace erreicht wurde, und die Zeit, die der normale System-Userspace zum Initialisieren benötigte. Beachten Sie, dass diese Messungen einfach die Zeit messen, die bis zu dem Punkt verstrichen ist, an dem alle Systemdienste gestartet wurden, aber nicht unbedingt bis sie die Initialisierung vollständig abgeschlossen haben oder die Festplatte im Leerlauf ist.
systemd-analyze blame
Dieser Befehl zeigt eine Liste aller laufenden Einheiten, sortiert nach der Zeit, die sie zum Initialisieren benötigt haben. Diese Informationen können verwendet werden, um die Startzeiten zu optimieren. Beachten Sie, dass die Ausgabe irreführend sein kann, da die Initialisierung eines Dienstes langsam sein kann, nur weil auf den Abschluss der Initialisierung eines anderen Dienstes gewartet wird. Beachten Sie auch: systemd-analyze-Schuld zeigt keine Ergebnisse für Dienste mit Type=simple an, da systemd solche Dienste als sofort gestartet betrachtet, daher kann keine Messung der Initialisierungsverzögerungen durchgeführt werden. Beachten Sie auch, dass dieser Befehl nur die Zeiteinheiten anzeigt, die für den Start benötigt wurden, er zeigt nicht an, wie lange Einheitsjobs in der Ausführungswarteschlange verbracht haben. Insbesondere zeigt es die Zeiteinheiten, die im "aktivierenden" Zustand verbracht wurden, was nicht für Einheiten wie Geräteeinheiten definiert ist, die direkt von "inaktiv" zu "aktiv" übergehen. Dieser Befehl vermittelt daher einen Eindruck von der Leistung des Programmcodes, kann jedoch die durch das Warten auf Hardware und ähnliche Ereignisse eingeführte Latenz nicht genau widerspiegeln.
- systemd-analyze blame
systemd-analyze critical-chain [UNIT...]
Dieser Befehl zeigt einen Baum der zeitkritischen Einheitenkette (für jede der angegebenen UNITs oder andernfalls für das Standardziel). Die Zeit, nachdem das Gerät aktiv oder gestartet wurde, wird nach dem „@“-Zeichen gedruckt. Die Zeit, die das Gerät zum Starten benötigt, wird nach dem „+“-Zeichen gedruckt. Beachten Sie, dass die Ausgabe irreführend sein kann, da die Initialisierung von Diensten von der Socket-Aktivierung und der parallelen Ausführung von Units abhängen kann. Außerdem berücksichtigt dies, ähnlich wie der Schuldzuweisungsbefehl, nur die Zeiteinheiten, die im "Aktivierungs"-Zustand verbracht wurden, und deckt daher keine Einheiten ab, die nie einen "Aktivierungs"-Zustand durchlaufen haben (z. B. Geräteeinheiten, die direkt von "inaktiv" wechseln). auf „aktiv“). Außerdem werden keine Informationen zu Jobs angezeigt (insbesondere nicht zu Jobs, die abgelaufen sind).
- systemd-analyze critical-chain
systemd-analyze dump [pattern…]
Ohne Parameter gibt dieser Befehl eine (normalerweise sehr lange) menschenlesbare Serialisierung des vollständigen Service-Manager-Zustands aus. Optional kann ein Glob-Muster angegeben werden, wodurch die Ausgabe auf Einheiten beschränkt wird, deren Namen mit einem der Muster übereinstimmen. Das Ausgabeformat kann ohne Vorankündigung geändert werden und sollte nicht von Anwendungen geparst werden.