systemd-analyze - Pronađite statistiku performansi podizanja sustava u Linuxu


Koristite li systemd sustav i upravitelj usluga, a vašem Linux sustavu je potrebno više vremena za podizanje ili jednostavno želite vidjeti izvješća o performansama podizanja vašeg sustava? Ako da, došli ste na pravo mjesto.

U ovom ćemo vam članku pokazati kako analizirati statistiku performansi podizanja Linux sustava pomoću systemd-analyze, jednog od brojnih uslužnih programa pod systemd za upravljanje sustavom.

Pročitajte također: Kako kontrolirati Systemd usluge na udaljenom Linux poslužitelju

Da bismo dobili pregled vremena podizanja sustava, možemo pokrenuti naredbu systemd-analyze bez ikakvih argumenata kako slijedi. Navest će informacije o tome koliko je vremena bilo potrebno svakom servisu da se pokrene, što uključuje vrijeme potrebno kernelu, initrd-u i korisničkom prostoru tijekom dizanja.

systemd-analyze

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

Ako želite vidjeti popis svih pokrenutih jedinica, razvrstanih po vremenu koje im je bilo potrebno za inicijalizaciju (najveće vrijeme na vrhu), u tu se svrhu koristi podnaredba okrivljavanja. Nakon pokretanja naredbe koja slijedi, upotrijebite [Enter] za prikaz više usluga na popisu i q za izlaz.

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

Kao što možete vidjeti iz gornjeg izlaza da je svaka jedinica razvrstana na temelju vremena potrebnog, možete jednostavno saznati kojem servisu treba više vremena tijekom dizanja i analizirati problem.

Zatim također možemo vidjeti stablo vremenski kritičnog lanca za zadani cilj ili popis navedenih jedinica s podnaredbom kritičnog lanca kao što 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 kraju, pogledajmo još jednu važnu podnaredbu koja omogućuje izradu grafičkih (svg format) detalja usluga sustava koje su pokrenute i u koje vrijeme, ističući njihovo vrijeme inicijalizacije, kako slijedi.

Provjerite je li grafički način prikaza ili x-prozori omogućeni kako biste vidjeli dijagram.

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

Sve gornje naredbe će ispisati statistiku performansi pokretanja za lokalno računalo. Za pregled informacija s udaljenog glavnog računala preko ssh, upotrijebite oznaku -H i odredite direktivu username@host, kao što je prikazano.

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

systemd-analyze također se može koristiti za pronalaženje drugih informacija o stanju i praćenju iz sustava i systemd-a (upravitelj usluga) i više. Za više informacija pogledajte njegovu stranicu s uputama.

man systemd-analyze 

Pročitajte također: Kako promijeniti razine pokretanja (ciljeve) u SystemD

To je to za sada! Ako imate pitanja ili želite podijeliti s nama, upotrijebite obrazac za povratne informacije u nastavku da biste nas kontaktirali.