systemd-analyze - Pronađite statistiku performansi pokretanja sistema u Linuxu


Da li koristite systemd sistem i upravitelj usluga, a vašem Linux sistemu je potrebno duže vrijeme da se pokrene ili jednostavno želite vidjeti izvještaje o performansama pokretanja vašeg sistema? Ako jeste, sleteli ste na pravo mesto.

U ovom članku ćemo vam pokazati kako analizirati statistiku performansi pokretanja Linux sistema koristeći systemd-analyze, jedan od brojnih uslužnih programa pod systemd-om za upravljanje sistemom.

Pročitajte također: Kako kontrolisati Systemd usluge na udaljenom Linux serveru

Da bismo dobili pregled vremena pokretanja sistema, možemo pokrenuti naredbu systemd-analyze bez ikakvih argumenata kako slijedi. On će navesti informacije o tome koliko je vremena bilo potrebno svakoj usluzi da se pokrene, što uključuje vrijeme potrebno za kernel, initrd i korisnički prostor prilikom pokretanja.

systemd-analyze

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

Ako želite da vidite listu svih aktivnih jedinica, sortiranih prema vremenu koje im je bilo potrebno da se inicijaliziraju (najviše vrijeme na vrhu), u tu svrhu se koristi podnaredba blame. Nakon što pokrenete naredbu koja slijedi, koristite [Enter] da vidite više usluga na listi i q da napustite.

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 sortirana na osnovu potrebnog vremena, možete jednostavno saznati koja usluga traje duže dok se pokreće i analizirati problem.

Zatim, također možemo vidjeti stablo vremenski kritičnog lanca za zadani cilj ili listu specificiranih jedinica sa 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ćava izradu grafičkih (svg format) detalja o sistemskim uslugama koje su pokrenute iu koje vrijeme, naglašavajući njihovo vrijeme inicijalizacije, kako slijedi.

Uvjerite se da je omogućen način grafičkog prikaza ili x-windows kako biste vidjeli grafikon.

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

Sve gore navedene naredbe će ispisati statistiku performansi pokretanja za lokalni stroj. Za pregled informacija sa udaljenog hosta preko ssh, koristite oznaku -H i navedite username@host direktivu, kao što je prikazano.

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

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

man systemd-analyze 

Pročitajte također: Kako promijeniti Runlevel (ciljeve) u SystemD-u

To je to za sada! Ako imate bilo kakvih pitanja ili mislite da podijelite, koristite obrazac za povratne informacije u nastavku da nas kontaktirate.