systemd-analysis-Poiščite statistiko delovanja sistemskega zagona v sistemu Linux


Ali uporabljate systemd system and service manager in vaš sistem Linux traja dlje časa za zagon ali si preprosto želite ogledati poročila o uspešnosti zagona vašega sistema? Če da, ste pristali na pravem mestu.

V tem članku vam bomo pokazali, kako analizirati statistične podatke o uspešnosti zagona sistema Linux z uporabo systemd-analysis, enega od številnih pripomočkov, ki so v sistemu systemd za upravljanje sistema.

Če si želite ogledati čas zagona sistema, lahko brez argumentov zaženemo ukaz systemd-analysis, kot sledi. Navedel bo informacije o tem, koliko časa je vsaka storitev potrebovala za zagon, vključno s časom, ki so ga porabili jedro, initrd in uporabniški prostor med zagonom.

# systemd-analyze

Startup finished in 884ms (kernel) + 3.861s (initrd) + 48.356s (userspace) = 53.102s

Če si želite ogledati seznam vseh delujočih enot, razvrščenih po času, ki so ga potrebovali za inicializacijo (najvišji čas na vrhu), se v ta namen uporabi pod-ukaz obtožbe. Ko zaženete ukaz, ki sledi, uporabite [Enter] za ogled več storitev na seznamu in q za izhod.

# systemd-analyze blame 
         16.159s mariadb.service
         12.178s libvirtd.service
         10.298s tuned.service
          9.836s postfix.service
          8.704s lsws.service
          7.352s lscpd.service
          4.988s [email 
          4.779s NetworkManager-wait-online.service
          4.577s lvm2-monitor.service
          4.439s ModemManager.service
          4.413s polkit.service
          4.280s dev-sda1.device
          4.225s systemd-udev-settle.service
          3.957s firewalld.service
          3.227s rhel-dmesg.service
          3.221s abrt-ccpp.service
          3.142s rsyslog.service
          3.053s avahi-daemon.service
          3.042s pure-ftpd.service
          2.249s gssproxy.service
          2.212s NetworkManager.service
          1.889s proc-fs-nfsd.mount
          1.780s systemd-tmpfiles-setup-dev.service
          1.451s sshd.service
          1.267s rhel-readonly.service
          1.035s sysstat.service
          1.001s rpc-statd-notify.service
           910ms systemd-logind.service
           739ms kdump.service
           738ms network.service
...

Kot lahko vidite iz zgornjega izhoda, da je vsaka enota razvrščena glede na čas, lahko preprosto ugotovite, katera storitev med zagonom traja dlje časa in analizirajte težavo.

Nato si lahko ogledamo tudi drevo časovno kritične verige za privzeti cilj ali seznam določenih enot s pod-ukazom kritične verige, kot je prikazano.

# 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.

multi-user.target @48.342s
└─mariadb.service @31.560s +16.159s
  └─network.target @31.558s
    └─network.service @30.819s +738ms
      └─NetworkManager-wait-online.service @26.035s +4.779s
        └─NetworkManager.service @23.821s +2.212s
          └─network-pre.target @23.821s
            └─firewalld.service @19.863s +3.957s
              └─polkit.service @15.381s +4.413s
                └─basic.target @12.271s
                  └─sockets.target @12.271s
                    └─virtlockd.socket @12.270s
                      └─sysinit.target @12.251s
                        └─systemd-update-utmp.service @12.196s +54ms
                          └─auditd.service @11.705s +486ms
                            └─systemd-tmpfiles-setup.service @11.609s +93ms
                              └─rhel-import-state.service @11.397s +211ms
                                └─local-fs.target @11.363s
                                  └─run-user-0.mount @46.910s
                                    └─local-fs-pre.target @10.575s
                                      └─lvm2-monitor.service @5.996s +4.577s
                                        └─lvm2-lvmetad.service @7.376s
                                          └─lvm2-lvmetad.socket @5.987s
                                            └─-.slice
# systemd-analyze critical-chain ntp.service networking.service

Na koncu pa poglejmo še en pomemben pod-ukaz, ki omogoča izdelavo grafičnih (v formatu svg) podrobnosti o sistemskih storitvah, ki so bile zagnane, in ob katerem času, s poudarkom na njihovem času inicializacije, na naslednji način.

Za ogled grafikona preverite, ali je omogočen grafični način prikaza ali x-okna.

# systemd-analyze plot > boot_analysis.svg
# xviewer boot_analysis.svg  

Vsi zgornji ukazi bodo natisnili statistične podatke o zagonu za lokalni stroj. Če si želite ogledati informacije z oddaljenega gostitelja prek ssh, uporabite zastavico -H in podajte direktivo [email , kot je prikazano.

# systemd-analyze time -H [email 
# systemd-analyze blame -H [email 
# systemd-analyze critical-chain -H [email 

systemd-analysis lahko uporabite tudi za iskanje drugih informacij o stanju in sledenju iz sistema in systemd (upravitelj storitev) in več. Za več informacij si oglejte njeno man stran.

# man systemd-analyze 

To je to zaenkrat! Če imate kakršna koli vprašanja ali jih želite deliti, nas kontaktirajte s spodnjim obrazcem za povratne informacije.