systemd-analyze - Nemo Ƙididdiga Ayyukan Boot-up a cikin Linux


Shin kuna amfani da tsarin tsarin da manajan sabis, kuma tsarin Linux ɗinku yana ɗaukar lokaci mai tsawo don yin taya ko kuna son duba rahotannin aikin boot-up ɗin ku? Idan eh, kun sauka akan daidai wurin.

A cikin wannan labarin, za mu nuna muku yadda ake nazarin ƙididdige ƙididdiga na boot-up na tsarin Linux ta amfani da systemd-analyze, ɗayan abubuwan amfani da yawa a ƙarƙashin systemd don sarrafa tsarin.

Don samun bayyani na lokacin boot-up na tsarin, za mu iya gudanar da umarni na systemd-analyze ba tare da wata gardama ba kamar haka. Zai jera bayani game da tsawon lokacin da kowane sabis ɗin ya ɗauki don farawa, wanda ya haɗa da lokacin da kernel, initrd da sararin mai amfani ke ɗauka yayin yin booting.

# systemd-analyze

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

Idan kuna son duba jerin duk raka'o'in da ke gudana, an jera su ta lokacin da suka ɗauki fara farawa (mafi girman lokacin akan sama), ana amfani da ƙaramin umarnin zargi don wannan dalili. Bayan gudanar da umarni mai biyowa, yi amfani da [Shigar] don duba ƙarin ayyuka a cikin jerin kuma q don barin.

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

Kamar yadda kuke gani daga abubuwan da aka fitar a sama cewa kowace naúrar ana jerawa bisa la'akari da lokacin da aka ɗauka, za ku iya kawai gano wace sabis ɗin ke ɗaukar lokaci mai tsawo yayin booting kuma bincika batun.

Na gaba, za mu iya kuma duba bishiyar sarkar-mahimmancin lokaci don manufa ta asali ko jerin ƙayyadaddun raka'a tare da ƙayyadaddun umarni na sarkar kamar yadda aka nuna.

# 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

A ƙarshe, bari mu kalli wani ƙaramin umarni mai mahimmanci wanda ke ba da izinin samar da hoto (svg format) dalla-dalla na ayyukan tsarin da aka fara, kuma a wane lokaci, yana nuna lokacin farawa, kamar haka.

Tabbatar cewa an kunna yanayin nunin hoto ko x-windows domin ganin shirin.

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

Duk umarnin da ke sama za su buga kididdigar aikin boot-up don injin gida. Don duba bayani daga mai watsa shiri mai nisa akan ssh, yi amfani da tutar -H kuma saka umarnin [email kare kare], kamar yadda aka nuna.

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

systemd-analyze kuma ana iya amfani dashi don nemo wasu jihohi da gano bayanai daga tsarin da tsarin (mai sarrafa sabis) da ƙari. Don ƙarin bayani, duba shafin mutumin.

# man systemd-analyze 

Shi ke nan a yanzu! Idan kuna da wasu tambayoyi ko tunani don raba, yi amfani da fom ɗin amsa da ke ƙasa don isa gare mu.