systemd-analysis - Linux sistēmā atrodiet sistēmas sāknēšanas veiktspējas statistiku


Vai jūs izmantojat systemd sistēmas un pakalpojumu pārvaldnieku, un jūsu Linux sistēmas sākšanai nepieciešams ilgāks laiks, vai vienkārši vēlaties apskatīt sistēmas sāknēšanas veiktspējas pārskatus? Ja jā, jūs esat nonācis īstajā vietā.

Šajā rakstā mēs parādīsim, kā analizēt Linux sistēmas sāknēšanas veiktspējas statistiku, izmantojot systemd-analysis - vienu no daudzajiem sistēmas pārvaldības utilītiem, kas atrodas sistēmā systemd.

Lai iegūtu pārskatu par sistēmas sāknēšanas laiku, mēs varam palaist komandu systemd-analysis bez jebkādiem argumentiem šādi. Tajā tiks uzskaitīta informācija par to, cik daudz laika bija nepieciešams katra pakalpojuma sākšanai, ieskaitot laiku, ko kodols, initrd un lietotāju telpa bija sāknēšanas laikā.

# systemd-analyze

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

Ja vēlaties apskatīt visu darbojošos vienību sarakstu, kas sakārtots pēc to inicializācijas laika (augstākais laiks virsū), šim nolūkam tiek izmantota vainīgā apakškomanda. Pēc tam, kad esat izpildījis sekojošo komandu, izmantojiet taustiņu [Enter], lai sarakstā apskatītu vairāk pakalpojumu, un q , lai izietu.

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

Kā redzat no iepriekš minētās izejas, ka katra vienība ir sakārtota, ņemot vērā patērēto laiku, jūs varat vienkārši uzzināt, kurš pakalpojums sāknēšanas laikā aizņem vairāk laika, un analizēt problēmu.

Pēc tam mēs varam arī apskatīt noklusējuma mērķa ķēdes laiku kritisko vērtību vai norādīto vienību sarakstu ar kritiskās ķēdes apakškomandu, kā parādīts.

# 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

Visbeidzot, aplūkosim vēl vienu svarīgu apakškomandu, kas ļauj izveidot grafisku (svg formāta) sīku informāciju par sāktajiem sistēmas pakalpojumiem un kurā brīdī, izceļot to inicializācijas laiku šādi.

Pārliecinieties, vai grafiskā attēlošanas režīms vai x-windows ir iespējots, lai skatītu diagrammu.

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

Visas iepriekš minētās komandas izdrukās vietējās mašīnas sāknēšanas veiktspējas statistiku. Lai skatītu informāciju no attālā resursdatora, izmantojot ssh, izmantojiet karodziņu -H un norādiet direktīvu [aizsargāta ar e-pastu], kā parādīts.

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

systemd-analysis var izmantot arī, lai atrastu citu stāvokļa un izsekošanas informāciju no sistēmas un systemd (pakalpojumu pārvaldnieks) un daudz ko citu. Lai iegūtu vairāk informācijas, skatiet tā rokasgrāmatu.

# man systemd-analyze 

Pagaidām tas ir viss! Ja jums ir kādi jautājumi vai domājat dalīties, izmantojiet tālāk sniegto atsauksmju veidlapu, lai sazinātos ar mums.