Cpustat - Valvoo suorittimen käyttöä suorittamalla prosesseja Linuxissa


Cpustat on tehokas järjestelmän suorituskyvyn mittausohjelma Linuxille, joka on kirjoitettu Go-ohjelmointikielellä. Se yrittää paljastaa suorittimen käytön ja kylläisyyden tehokkaasti käyttämällä Utilisation Saturation and Errors (USE) -menetelmää (metodologia minkä tahansa järjestelmän suorituskyvyn analysointiin).

Se poimii korkeamman taajuuden näytteitä jokaisesta järjestelmässä suoritetusta prosessista ja tekee sitten yhteenvedon näistä näytteistä pienemmällä taajuudella. Se voi esimerkiksi mitata jokaisen prosessin 200 ms välein ja tehdä yhteenvedon näistä näytteistä joka 5 sekunti, mukaan lukien tiettyjen mittareiden min/keskiarvo/maksimiarvot.

Suositeltu luku: 20 komentorivityökalua Linuxin suorituskyvyn seurantaan

Cpustat tulostaa tiedot kahdella mahdollisella tavalla: pelkkä tekstiluettelo yhteenvetovälistä ja värikäs vierivä hallintapaneeli jokaisesta näytteestä.

Kuinka asentaa Cpustat Linuxiin

Sinulla on oltava Go (GoLang) asennettuna Linux-järjestelmääsi, jotta voit käyttää cpustatia. Napsauta alla olevaa linkkiä seurataksesi GoLangin asennusvaiheita, eli jos sinulla ei ole se asennettiin:

  1. Asenna GoLang (Go Programming Language) Linuxiin

Kun olet asentanut Go, asenna se kirjoittamalla alla oleva go get -komento. Tämä komento asentaa cpustat-binaarin GOBIN-laitteeseen. muuttuja:

go get github.com/uber-common/cpustat

Kuinka käyttää Cpustaatia Linuxissa

Kun asennus on valmis, suorita cpustat seuraavasti pääkäyttäjän oikeuksilla käyttämällä sudo-komentoa, eli jos hallitset järjestelmää ei-root-käyttäjänä, muuten saat kuvan mukaisen virheilmoituksen:

$GOBIN/cpustat
This program uses the netlink taskstats interface, so it must be run as root.

Huomaa: voit suorittaa cpustatin sekä kaikki muut Go-ohjelmat, jotka olet asentanut järjestelmään muiden komentojen tapaan käyttämällä GOBIN -muuttuja PATH-ympäristömuuttujassasi. Avaa alla oleva linkki saadaksesi lisätietoja PATH-muuttujan asettamisesta Linuxissa.

  1. Opi asettamaan ` PATH-muuttujasi pysyvästi Linuxissa

Näin cpustat toimii; hakemistosta /proc kysytään, jotta saadaan nykyinen luettelo prosessitunnuksista jokaiselle aikavälille, ja:

  • lue jokaiselle PID:lle /proc/pid/stat ja laske sitten ero edelliseen näytteeseen.
  • Jos kyseessä on uusi PID, lue /proc/pid/cmdline.
  • lähetä jokaiselle PID:lle netlink-sanoma, joka noutaa taskstats, laske ero edelliseen näytteeseen.
  • hae /proc/stat saadaksesi järjestelmän kokonaistilastot.

Jälleen jokainen univäli säädetään ottamaan huomioon kaikkien näiden tilastojen noutamiseen käytetty aika. Lisäksi jokainen näyte tallentaa myös ajan, joka kului kunkin mittauksen skaalaamiseen näytteiden välillä kuluneen ajan mukaan. Tämä yrittää ottaa huomioon itse cpustatin viiveet.

Kun cpustat ajetaan ilman argumentteja, se näyttää oletuksena seuraavan: näytteenottoväli: 200 ms, yhteenvetoväli: 2 s (10 näytettä), näyttää 10 suosituinta prosessia, käyttäjäsuodatin: kaikki, pid-suodatin: kaikki muodossa näkyy alla olevassa kuvakaappauksessa:

sudo $GOBIN/cpustat 

Yllä olevasta lähdöstä seuraavat kenttiä edeltävien järjestelmän laajuisten yhteenvetomittausten merkitykset:

  • usr – käyttäjätilan minimi/keskimäärä/maksimi käyttöaika prosentteina suorittimesta.
  • sys – järjestelmätilan vähimmäis/keskimäärä/maksimi käyttöaika prosentteina suorittimesta.
  • kiva – min/avg/max käyttäjätilan matalan prioriteetin ajoaika prosentteina suorittimesta.
  • idle – käyttäjätilan vähimmäis/keskimäärä/maksimi käyttöaika prosentteina suorittimesta.
  • iowait – min/avg/max viiveaika odottaa levyn IO:ta.
  • leikkaus – suoritettavassa tilassa olevien prosessien min/avg/max määrä (sama kuin kuormituksen keskiarvo).
  • pblock – levyllä IO estettyjen prosessien min/keskimäärä/maksimimäärä.
  • pstart – tällä yhteenvetovälillä aloitettujen prosessien/säikeiden määrä.

Edelleen yllä olevasta tuotosta tietylle prosessille eri sarakkeet tarkoittavat:

  • nimi – yleinen prosessin nimi hakemistosta /proc/pid/stat tai /proc/pid/cmdline.
  • pid – prosessin tunnus, jota kutsutaan myös nimellä "tgid".
  • min – alin näyte käyttäjä+järjestelmän ajasta pid:lle, mitattuna tiedostosta /proc/pid/stat. Mittakaava on prosenttiosuus CPU:sta.
  • max – tämän pid:n suurin näyte käyttäjä+järjestelmän ajasta, mitattuna myös tiedostosta /proc/pid/stat.
  • usr – keskimääräinen käyttäjäaika pid:lle yhteenvetojakson aikana, mitattuna tiedostosta /proc/pid/stat.
  • sys – pid:n keskimääräinen järjestelmäaika yhteenvetojakson aikana, mitattuna tiedostosta /proc/pid/stat.
  • kiva – osoittaa prosessin nykyisen "kiva" arvon, mitattuna tiedostosta /proc/pid/stat. Korkeampi tarkoittaa "mukavampaa".
  • runq – aika, jonka prosessi ja kaikki sen säikeet käytettiin suoritettaviksi, mutta odottavat suorittamista, mitattuna netlinkin kautta tehtävästä tehtävätilastoista. Mittakaava on prosenttiosuus CPU:sta.
  • iow – aika, jolloin prosessi ja kaikki sen säikeet ovat estäneet levyn IO:n, mitattuna Netlinkin kautta tehtävätilastoista. Mittakaava on prosenttiosuus suorittimesta, joka lasketaan keskiarvoina yhteenvetoväliltä.
  • Swap – aika, jonka prosessi ja kaikki sen säikeet odottivat vaihtoa, mitattuna Netlinkin kautta tehtävästä tehtävätilastoista. Mittakaava on prosenttiosuus suorittimesta, joka lasketaan keskiarvoina yhteenvetoväliltä.
  • vcx ja icx – prosessin ja sen kaikkien säikeiden vapaaehtoisten kontekstin vaihtojen kokonaismäärä yhteenvetovälin aikana, mitattuna Netlinkin kautta tehdyistä tehtävistä.
  • rss – nykyinen RSS-arvo, joka on haettu hakemistosta /proc/pid/stat. Se on tämän prosessin käyttämän muistin määrä.
  • ctime – tämän yhteenvetovälin aikana poistuneiden lasten odotusten kuluttaman käyttäjän+järjestelmän suorittimen kulutuksen summa mitattuna tiedostosta /proc/pid/stat.

Huomaa, että pitkät aliprosessit voivat usein sekoittaa tämän mittauksen, koska aika raportoidaan vain, kun aliprosessi poistuu. Tämä on kuitenkin hyödyllistä mittaamaan toistuvien cron-töiden ja terveystarkastusten vaikutusta, kun monet aliprosessit kuluttavat usein suorittimen aikaa.

  • thrd – säikeiden lukumäärä yhteenvetovälin lopussa mitattuna tiedostosta /proc/pid/stat.
  • sam – tämän prosessin näytteiden määrä, joka sisältyy yhteenvetoväliin. Äskettäin alkaneet tai lopetetut prosessit ovat saattaneet näkyä harvemmille näytteille kuin yhteenvetoväli.

Seuraava komento näyttää 10 suurinta järjestelmässä käynnissä olevaa pääkäyttäjän prosessia:

sudo $GOBIN/cpustat -u root

Jos haluat näyttää ulostulon hienossa päätetilassa, käytä -t-lippua seuraavasti:

sudo $GOBIN/cpustat -u roo -t

Nähdäksesi suurimman x prosessien määrän (oletus on 10), voit käyttää -n-lippua, seuraava komento näyttää 20 suurinta järjestelmässä käynnissä olevaa Linux-prosessia:

sudo $GOBIN/cpustat -n 20 

Voit myös kirjoittaa CPU-profiilin tiedostoon käyttämällä -cpuprofile-vaihtoehtoa seuraavasti ja tarkastella tiedostoa cat-komennolla:

sudo $GOBIN/cpustat -cpuprofile cpuprof.txt
cat cpuprof.txt

Näytä ohjetiedot käyttämällä -h-lippua seuraavasti:

sudo $GOBIN/cpustat -h

Etsi lisätietoja cpustat Githubin arkistosta: https://github.com/uber-common/cpustat

Siinä kaikki! Tässä artikkelissa näytimme sinulle, kuinka voit asentaa ja käyttää cpustatia, hyödyllistä järjestelmän suorituskyvyn mittaustyökalua Linuxille. Jaa ajatuksesi kanssamme alla olevan kommenttiosion kautta.