systemd-analyse - Pata Takwimu za Utendaji wa Uanzishaji wa Mfumo katika Linux


Je, unatumia mfumo wa mfumo na kidhibiti cha huduma, na mfumo wako wa Linux unachukua muda mrefu kuwasha au ungependa kutazama ripoti za utendakazi wa kuwasha mfumo wako? Ikiwa ndio, umefika mahali pazuri.

Katika makala haya, tutakuonyesha jinsi ya kuchambua takwimu za utendakazi wa uanzishaji wa mfumo wa Linux kwa kutumia systemd-analyse, mojawapo ya huduma nyingi chini ya systemd kwa usimamizi wa mfumo.

Ili kupata muhtasari wa wakati wa kuwasha mfumo, tunaweza kuendesha systemd-analyse amri bila hoja zozote kama ifuatavyo. Itaorodhesha taarifa kuhusu muda ambao kila huduma ilichukua kuanza, ambayo inajumuisha muda uliochukuliwa na kernel, initrd na userspace wakati wa kuwasha.

# systemd-analyze

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

Iwapo ungependa kutazama orodha ya vitengo vyote vinavyoendesha, vilivyopangwa kulingana na muda vilivyochukua kuanzisha (muda wa juu zaidi juu), amri ndogo ya lawama inatumiwa kwa madhumuni haya. Baada ya kutekeleza amri ifuatayo, tumia [Enter] ili kuona huduma zaidi kwenye orodha na q kuacha.

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

Kama unavyoona kutoka kwa pato hapo juu kwamba kila kitengo kimepangwa kulingana na wakati uliochukuliwa, unaweza kujua ni huduma gani inachukua muda mrefu wakati wa kuanza na kuchambua suala hilo.

Kisha, tunaweza pia kuona mti wa msururu muhimu wa wakati kwa lengo chaguomsingi au orodha ya vitengo vilivyobainishwa na amri ndogo ya mnyororo muhimu kama inavyoonyeshwa.

# 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

Hatimaye, hebu tuangalie amri moja ndogo muhimu zaidi ambayo inaruhusu kutoa maelezo ya kielelezo (svg) ya huduma za mfumo ambazo zimeanzishwa, na kwa wakati gani, tukiangazia wakati wao wa uanzishaji, kama ifuatavyo.

Hakikisha hali ya onyesho la picha au madirisha ya x imewashwa ili kutazama njama.

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

Amri zote hapo juu zitachapisha takwimu za utendakazi wa kuwasha kwa mashine ya ndani. Ili kuona maelezo kutoka kwa seva pangishi ya mbali kupitia ssh, tumia alama ya -H na ubainishe maagizo ya [email , kama inavyoonyeshwa.

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

systemd-analyze pia inaweza kutumika kutafuta hali nyingine na kufuatilia taarifa kutoka kwa mfumo na systemd (meneja wa huduma) na zaidi. Kwa habari zaidi, angalia ukurasa wake wa mtu.

# man systemd-analyze 

Ni hayo kwa sasa! Ikiwa una maswali au wazo la kushiriki, tumia fomu ya maoni iliyo hapa chini ili kuwasiliana nasi.