systemd-analyze - Etsi järjestelmän käynnistyksen suorituskykytilastot Linuxissa


Käytätkö systemd-järjestelmän ja palvelunhallintaa, ja Linux-järjestelmäsi käynnistyminen kestää kauemmin vai haluatko vain tarkastella raportteja järjestelmän käynnistyksen suorituskyvystä? Jos kyllä, olet laskeutunut oikeaan paikkaan.

Tässä artikkelissa näytämme sinulle, kuinka voit analysoida Linux-järjestelmän käynnistyksen suorituskykytilastoja käyttämällä systemd-analyze-ohjelmaa, joka on yksi useista systemd-apuohjelmista järjestelmän hallintaan.

Lue myös: Systemd-palvelujen hallinta Linux-etäpalvelimella

Saadaksemme yleiskuvan järjestelmän käynnistysajasta voimme suorittaa komennon systemd-analyze ilman argumentteja seuraavasti. Se listaa tietoja siitä, kuinka kauan kunkin palvelun käynnistyminen kesti, mukaan lukien ytimen, initrd:n ja userspacen käynnistyksen aikana kuluva aika.

systemd-analyze

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

Jos haluat tarkastella luetteloa kaikista käynnissä olevista yksiköistä, lajiteltuna niiden alustusajan mukaan (korkein aika ylhäällä), syyttämisen alikomentoa käytetään tähän tarkoitukseen. Kun olet suorittanut seuraavan komennon, paina [Enter] nähdäksesi lisää palveluita luettelossa ja q poistuaksesi.

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

Kuten yllä olevasta lähdöstä huomaa, että jokainen yksikkö lajitellaan käytetyn ajan perusteella, voit yksinkertaisesti selvittää, mikä palvelu kestää kauemmin käynnistyksen aikana, ja analysoida ongelman.

Seuraavaksi voimme myös tarkastella oletuskohteen aikakriittisen ketjun puuta tai luetteloa määritetyistä yksiköistä kriittisen ketjun alikomennon kanssa kuvan mukaisesti.

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

Lopuksi tarkastellaan vielä yhtä tärkeää alikomentoa, jonka avulla voidaan tuottaa graafisia (svg-muotoisia) yksityiskohtaisia tietoja käynnistetyistä järjestelmäpalveluista ja milloin, korostaen niiden alustusaikaa seuraavasti.

Varmista, että graafinen näyttötila tai x-ikkunat ovat käytössä nähdäksesi kaavion.

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

Kaikki yllä olevat komennot tulostavat paikallisen koneen käynnistyssuorituskykytilastot. Jos haluat tarkastella etäisäntätietoja ssh-yhteydellä, käytä -H-lippua ja määritä käyttäjänimi@isäntä-käsky kuvan mukaisesti.

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

systemd-analyze:tä voidaan käyttää myös muiden tila- ja jäljitystietojen etsimiseen järjestelmästä ja systemdistä (palveluhallinta) ja muista. Katso lisätietoja sen man-sivulta.

man systemd-analyze 

Lue myös: Ajotasojen (kohteiden) muuttaminen SystemD:ssä

Siinä se toistaiseksi! Jos sinulla on kysyttävää tai haluat jakaa, käytä alla olevaa palautelomaketta ottaaksesi meihin yhteyttä.