Cpustat - fylgist með CPU nýtingu með því að keyra ferla í Linux


Cpustat er öflugt kerfisframmistöðumælingarforrit fyrir Linux, skrifað með Go forritunarmáli. Það reynir að sýna CPU nýtingu og mettun á áhrifaríkan hátt með því að nota The Utilization Saturation and Errors (USE) aðferð (aðferðafræði til að greina frammistöðu hvers kerfis).

Það dregur út sýni með hærri tíðni af hverju ferli sem er keyrt á kerfinu og dregur síðan saman þessi sýni með lægri tíðni. Til dæmis getur það mælt hvert ferli á 200 ms fresti og tekið saman þessi sýni á 5 sekúndna fresti, þar á meðal lágmarks-/meðaltals-/hámarksgildi fyrir ákveðnar mælikvarðar.

Cpustat gefur út gögn á tvo mögulega vegu: hreinan textalista yfir yfirlitsbilið og litríkt fletjandi mælaborð fyrir hvert sýnishorn.

Hvernig á að setja upp Cpustat í Linux

Þú verður að hafa Go (GoLang) uppsett á Linux kerfinu þínu til að nota cpustat, smelltu á hlekkinn hér að neðan til að fylgja GoLang uppsetningarskrefunum, það er ef þú ert ekki með það uppsett:

  1. Settu upp GoLang (Go forritunarmál) í Linux

Þegar þú hefur sett upp Go skaltu slá inn go get skipunina fyrir neðan til að setja hana upp, þessi skipun mun setja upp cpustat tvöfaldann í GOBIN breytunni þinni:

# go get github.com/uber-common/cpustat

Hvernig á að nota Cpustat í Linux

Þegar uppsetningarferlinu lýkur skaltu keyra cpustat eins og hér segir með rótarréttindum með því að nota sudo skipunina sem er ef þú stjórnar kerfinu sem notandi sem ekki er rót, annars færðu villuna eins og sýnt er:

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

Athugið: Til að keyra cpustat sem og öll önnur Go forrit sem þú hefur sett upp á vélinni þinni eins og allar aðrar skipanir skaltu hafa GOBIN breytu í PATH umhverfisbreytunni þinni. Opnaðu hlekkinn hér að neðan til að læra hvernig á að stilla PATH breytuna í Linux.

  1. Lærðu hvernig á að stilla PATH breyturnar þínar varanlega í Linux

Svona virkar cpustat; /proc skrárinn er beðinn um að fá núverandi lista yfir vinnsluauðkenni fyrir hvert bil, og:

  • fyrir hvert PID, lestu /proc/pid/stat, reiknaðu síðan mismun frá fyrra sýni.
  • ef það er nýtt PID skaltu lesa /proc/pid/cmdline.
  • fyrir hvert PID, sendu nettengingarskilaboð til að sækja verkefnatölfræðina, reikna muninn frá fyrra sýni.
  • sæktu /proc/stat til að fá heildartölfræði kerfisins.

Aftur er hvert svefnbil stillt til að taka tillit til tímans sem það tekur að sækja allar þessar tölur. Ennfremur skráir hvert sýni einnig þann tíma sem það tók að skala hverja mælingu með raunverulegum tíma sem liðið hefur á milli sýna. Þetta reynir að gera grein fyrir töfum á cpustat sjálfum.

Þegar keyrt er án nokkurra röka, mun cpustat sýna eftirfarandi sjálfgefið: sýnatökubil: 200ms, yfirlitsbil: 2s (10 sýni), sýnir topp 10 aðferðirnar, notendasía: allt, pid sía: allt eins og sýnt er á skjámyndinni hér að neðan:

$ sudo $GOBIN/cpustat 

Af úttakinu hér að ofan er eftirfarandi merking yfirlitsmælinga fyrir kerfið sem birtast á undan reitunum:

  • usr – lágmark/avg/max keyrslutími notendahams sem hlutfall af örgjörva.
  • sys – lágmark/avg/max keyrslutími kerfishams sem hlutfall af örgjörva.
  • fínt – lágmark/meðal/max notendastilling með lágum forgangi keyrslutíma sem hlutfall af örgjörva.
  • aðgerðalaus – mín/meðal/max keyrslutími notendahams sem hlutfall af örgjörva.
  • iowait – mín/meðal/hámark seinkun tími sem bíður eftir IO disks.
  • prun – lágmark/meðal/max fjöldi ferla í keyranlegu ástandi (sama og álagsmeðaltal).
  • pblock – lágmark/meðal/max fjöldi ferla sem er læst á IO disks.
  • pstart – fjöldi ferla/þráða byrjaðir á þessu yfirlitsbili.

Enn frá úttakinu hér að ofan, fyrir tiltekið ferli, þýða mismunandi dálkar:

  • nafn – algengt ferli heiti frá /proc/pid/stat eða /proc/pid/cmdline.
  • pid – vinnsluauðkenni, einnig nefnt „tgid“.
  • mín – lægsta úrtak af tíma notanda+kerfis fyrir pid, mælt frá /proc/pid/stat. Mælikvarði er hlutfall af örgjörva.
  • hámark – hæsta úrtak af tíma notanda+kerfis fyrir þetta pid, einnig mælt frá /proc/pid/stat.
  • usr – meðalnotendatími fyrir pid á yfirlitstímabilinu, mældur frá /proc/pid/stat.
  • sys – meðalkerfistími fyrir pid yfir yfirlitstímabilið, mældur frá /proc/pid/stat.
  • nice – gefur til kynna núverandi „gott“ gildi fyrir ferlið, mælt frá /proc/pid/stat. Hærra þýðir „flottari“.
  • runq – tímasetja ferlið og alla þræði þess sem varið er í keyrslu en bíða eftir að keyra, mælt út frá verkefnatölum í gegnum netlink. Mælikvarði er hlutfall af örgjörva.
  • iow – tímasetja ferlið og alla þræði þess sem lokað er af IO disks, mældur út frá verkefnatölum í gegnum netlink. Kvarðinn er hlutfall af örgjörva, að meðaltali yfir yfirlitsbilið.
  • skipta – tímasetja ferlið og alla þræði þess í bið eftir að verða skipt inn, mæld út frá verkefnatölum í gegnum netlink. Kvarðinn er hlutfall af örgjörva, að meðaltali yfir yfirlitsbilið.
  • vcx og icx – heildarfjöldi frjálsra samhengisskipta eftir ferlinu og öllum þráðum þess á yfirlitsbilinu, mældur út frá verkefnatölfræði í gegnum nettengil.
  • rss – núverandi RSS gildi sótt í /proc/pid/stat. Það er magnið af minni sem þetta ferli notar.
  • ctime – summan af notanda+sys örgjörvatíma sem notaður er af bið fyrir börn sem fóru út á þessu yfirlitsbili, mælt frá /proc/pid/stat.

Athugaðu að langvarandi undirferli geta oft ruglað þessa mælingu, vegna þess að tíminn er aðeins tilkynntur þegar undirferli lýkur. Hins vegar er þetta gagnlegt til að mæla áhrif tíðra cron verka og heilsufarsskoðana þar sem örgjörvatíminn er oft neytt af mörgum undirferli.

  • þriðji – fjöldi þráða í lok yfirlitsbilsins, mældur frá /proc/pid/stat.
  • sam – fjöldi sýna fyrir þetta ferli innifalinn í samantektarbilinu. Ferlar sem hafa nýlega hafist eða hætt gætu hafa verið sýnileg fyrir færri sýni en samantektarbilið.

Eftirfarandi skipun sýnir efstu 10 rót notendaferlana sem keyra á kerfinu:

$ sudo $GOBIN/cpustat -u root

Notaðu -t fánann á eftirfarandi hátt til að birta úttak í flottri flugstöðvaham:

$ sudo $GOBIN/cpustat -u roo -t

Til að skoða helstu 20 Linux ferla sem keyra á kerfinu:

$ sudo $GOBIN/cpustat -n 20 

Þú getur líka skrifað CPU prófíl í skrá með -cpuprofile valkostinum sem hér segir og notaðu síðan cat skipunina til að skoða skrána:

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

Til að sýna hjálparupplýsingar, notaðu -h fánann sem hér segir:

$ sudo $GOBIN/cpustat -h

Finndu frekari upplýsingar frá cpustat Github geymslunni: https://github.com/uber-common/cpustat

Það er allt og sumt! Í þessari grein sýndum við þér hvernig á að setja upp og nota cpustat, gagnlegt kerfismælingartæki fyrir Linux. Deildu hugsunum þínum með okkur í gegnum athugasemdahlutann hér að neðan.