systemd-analyze - Pangitaa ang System Boot-up Performance Statistics sa Linux


Gigamit ba nimo ang systemd system ug service manager, ug ang imong Linux system nagdugay sa pag-boot o gusto nimo nga tan-awon ang mga taho sa imong system boot-up performance? Kung oo, nakaabot ka sa tama nga lugar.

Niini nga artikulo, ipakita namo kanimo kung unsaon pag-analisar ang usa ka Linux system boot-up performance statistics gamit ang systemd-analyze, usa sa daghang mga utilities ubos sa systemd alang sa pagdumala sa sistema.

Aron makakuha usa ka kinatibuk-ang panan-aw sa oras sa pag-boot sa system, mahimo namon nga ipadagan ang command sa systemd-analyze nga wala’y bisan unsang mga argumento sama sa mosunod. Maglista kini og impormasyon mahitungod sa kung pila ka oras ang gikinahanglan sa matag serbisyo sa pagsugod, nga naglakip sa oras nga gikuha sa kernel, initrd ug userspace samtang nag-boot.

# systemd-analyze

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

Kung gusto nimo tan-awon ang usa ka lista sa tanan nga nagdagan nga mga yunit, gisunud sa oras nga ilang gikuha sa pagsugod (pinakataas nga oras sa ibabaw), ang sub-command sa pagbasol gigamit alang niini nga katuyoan. Human ipadagan ang mosunod nga sugo, gamita ang [Enter] aron makita ang dugang mga serbisyo sa listahan ug q aron moundang.

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

Sama sa imong makita gikan sa output sa ibabaw nga ang matag yunit gihan-ay base sa oras nga gikuha, mahimo nimong mahibal-an kung unsang serbisyo ang nagdugay samtang nag-boot ug nag-analisar sa isyu.

Sunod, mahimo usab naton tan-awon ang usa ka punoan sa kadena nga kritikal sa oras alang sa default nga target o usa ka lista sa mga piho nga yunit nga adunay sub-command nga kritikal nga kadena sama sa gipakita.

# 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

Sa katapusan, atong tan-awon ang usa ka mas importante nga sub-command nga nagtugot sa paghimo sa graphical (svg format) nga nagdetalye sa mga serbisyo sa sistema nga gisugdan, ug sa unsang orasa, nga nagpasiugda sa ilang inisyal nga oras, ingon sa mosunod.

Siguroha nga ang graphical display mode o x-windows gipagana aron makita ang laraw.

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

Ang tanan nga mga sugo sa ibabaw mag-imprinta sa boot-up performance statistics alang sa lokal nga makina. Para tan-awon ang impormasyon gikan sa layo nga host sa ssh, gamita ang -H nga bandera ug ipiho ang [email  nga direktiba, sama sa gipakita.

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

Ang systemd-analyze magamit usab sa pagpangita sa ubang estado ug pagsubay sa impormasyon gikan sa system ug systemd (service manager) ug uban pa. Para sa dugang nga impormasyon, tan-awa ang man page niini.

# man systemd-analyze 

Mao na sa pagkakaron! Kung naa kay pangutana o gihunahuna nga ipaambit, gamita ang feedback form sa ubos para maabot mi.