Den Linux Bootvorgang mit systemd analysieren
Posted by Guenny onSystemd läuft sys-v-init nach und nach den Rang hab. Das heißt bei der Untersuchung des Bootvorgangs können andere Wege gegangen werden und es muss nicht auf altbekannte Tools wie Bootcharts zurückgegriffen werden.
Systemd bringt ein eigenes Analysetool auf pythonbasis mit, welches ähnliche Möglichkeiten bietet.
Der Aufruf kann zunächst ohne Parameter getestet werden. Dieser liefert einen groben Überblick.
systemd-analyze
Startup finished in 7.239s (kernel) + 30.762s (userspace) = 38.001s
Das gleiche Ergebnis wirft auch der Parameter "time" aus.
Die Ausgabe gibt anders als auf den ersten Blick vermutet nicht den gesammten Bootvorgang wieder, sondern nur die Zeit zum Starten der Dienste und Co.
Der Parameter "critical-chain" liefert hier schon einen detaillierten Blick auf mögliche Nachzügler.
systemd-analyze critical-chain
Eine Liste aller Units kann wie folgt ausgegeben werden.
systemd-analyze blame
Um nun eine ähnliche grafische Ausgabe wie bei Bootcharts zu erhalten bietet systemd-analyze eine SVG Ausgabe. Diese kann mit einem herkömmlichen Browser geöffnet werden.
systemd-analyze plot > /home/itrig/systemd.svg
Eine weitere grafische Ausgabe kann mit "dot" erzielt werden. Dabei werden die Abhängigkeiten aller Aufrufe dargestellt.
systemd-analyze dot | dot -Tsvg > /home/itrig/systemdplot.svg
Soll die Grafik auf einen Dienst beschränken werden, muss dieser einfach mit angegeben werden.
systemd-analyze dot 'docker*' |dot -Tsvg > /home/itrig/docker.svg
Alle weiteren Befehle lassen sich mit "man" oder "help" einsehen.
systemd-analyze [OPTIONS...] {COMMAND} ...
Profile systemd, show unit dependencies, check unit files.
-h --help Show this help
--version Show package version
--no-pager Do not pipe output into a pager
--system Operate on system systemd instance
--user Operate on user systemd instance
-H --host=[USER@]HOST Operate on remote host
-M --machine=CONTAINER Operate on local container
--order Show only order in the graph
--require Show only requirement in the graph
--from-pattern=GLOB Show only origins in the graph
--to-pattern=GLOB Show only destinations in the graph
--fuzz=SECONDS Also print also services which finished SECONDS
earlier than the latest in the branch
--man[=BOOL] Do [not] check for existence of man pages
Commands:
time Print time spent in the kernel
blame Print list of running units ordered by time to init
critical-chain Print a tree of the time critical chain of units
plot Output SVG graphic showing service initialization
dot Output dependency graph in dot(1) format
set-log-level LEVEL Set logging threshold for manager
set-log-target TARGET Set logging target for manager
dump Output state serialization of service manager
verify FILE... Check unit files for correctness
Trackbacks
Trackback specific URI for this entryThis link is not meant to be clicked. It contains the trackback URI for this entry. You can use this URI to send ping- & trackbacks from your own blog to this entry. To copy the link, right click and select "Copy Shortcut" in Internet Explorer or "Copy Link Location" in Mozilla.
No Trackbacks
Comments
Display comments as Linear | ThreadedKoro on :