Cpustat - Inafuatilia Utumiaji wa CPU kwa Mchakato wa Uendeshaji katika Linux


Cpustat ni programu yenye nguvu ya kupima utendakazi wa mfumo kwa ajili ya Linux, iliyoandikwa kwa kutumia lugha ya programu ya Go. Inajaribu kufichua matumizi na uenezaji wa CPU kwa njia ifaayo, kwa kutumia Mbinu ya Kueneza na Makosa (TUMIA) (mbinu ya kuchanganua utendakazi wa mfumo wowote).

Hutoa sampuli za masafa ya juu zaidi za kila mchakato unaotekelezwa kwenye mfumo na kisha kutoa muhtasari wa sampuli hizi kwa masafa ya chini. Kwa mfano, inaweza kupima kila mchakato kila milisekunde 200 na kufanya muhtasari wa sampuli hizi kila baada ya sekunde 5, ikijumuisha thamani za min/wastani/max za vipimo fulani.

Cpustat hutoa data kwa njia mbili zinazowezekana: orodha ya maandishi safi ya muda wa muhtasari na dashibodi ya kupendeza ya kusogeza ya kila sampuli.

Jinsi ya kufunga Cpustat kwenye Linux

Ni lazima uwe na Go (GoLang) iliyosakinishwa kwenye mfumo wako wa Linux ili kutumia cpustat, bofya kiungo kilicho hapa chini ili kufuata hatua za usakinishaji wa GoLang ikiwa huna iliyosakinishwa:

  1. Sakinisha GoLang (Lugha ya Kuandaa Programu ya Go) katika Linux

Mara baada ya kusakinisha Go, chapa go get amri hapa chini ili kuisakinisha, amri hii itasakinisha cpustat binary katika utofauti wako wa GOBIN:

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

Jinsi ya kutumia Cpustat kwenye Linux

Wakati mchakato wa usakinishaji ukamilika, endesha cpustat kama ifuatavyo na upendeleo wa mizizi kwa kutumia sudo amri ambayo ni ikiwa unadhibiti mfumo kama mtumiaji asiye na mizizi, vinginevyo utapata kosa kama inavyoonyeshwa:

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

Kumbuka: Ili kuendesha cpustat na vile vile programu zingine zote za Go ambazo umesakinisha kwenye mfumo wako kama amri zingine zozote, ni pamoja na kutofautisha kwa GOBIN katika utofauti wako wa mazingira wa PATH. Fungua kiungo kilicho hapa chini ili kujifunza jinsi ya kuweka utofauti wa PATH katika Linux.

  1. Jifunze Jinsi ya Kuweka Vigeu vyako vya PATH Kabisa katika Linux

Hivi ndivyo cpustat inavyofanya kazi; saraka ya /proc inaulizwa ili kupata orodha ya sasa ya vitambulisho vya mchakato kwa kila kipindi, na:

  • kwa kila PID, soma /proc/pid/stat, kisha ukokote tofauti na sampuli ya awali.
  • ikiwa ni PID mpya, soma /proc/pid/cmdline.
  • kwa kila PID, tuma ujumbe wa netlink ili kuleta takwimu za kazi, kukokotoa tofauti kutoka kwa sampuli ya awali.
  • chota /proc/stat ili kupata takwimu za jumla za mfumo.

Tena, kila muda wa kulala hurekebishwa ili kuhesabu muda unaotumika kuleta takwimu hizi zote. Zaidi ya hayo, kila sampuli pia hurekodi muda uliochukua ili kupima kila kipimo kwa muda halisi uliopita kati ya sampuli. Hii inajaribu kuhesabu ucheleweshaji wa cpustat yenyewe.

Inapoendeshwa bila hoja zozote, cpustat itaonyesha yafuatayo kwa chaguo-msingi: muda wa sampuli: milisekunde 200, muda wa muhtasari: 2s (sampuli 10), ikionyesha proc 10 bora, kichujio cha mtumiaji: zote, kichujio cha pid: yote kama inavyoonyeshwa kwenye picha ya skrini hapa chini:

$ sudo $GOBIN/cpustat 

Kutoka kwa matokeo yaliyo hapo juu, zifuatazo ni maana za vipimo vya muhtasari wa mfumo mzima vinavyoonyeshwa kabla ya sehemu:

  • usr - min/avg/max mode ya mtumiaji wakati wa kuendesha kama asilimia ya CPU.
  • sys - min/avg/max mode ya mfumo wakati wa kuendesha kama asilimia ya CPU.
  • nzuri - min/avg/max mode ya mtumiaji inayopewa kipaumbele cha chini wakati wa kuendesha kama asilimia ya CPU.
  • haifanyi kazi - min/avg/max mode ya mtumiaji wakati wa kuendesha kama asilimia ya CPU.
  • iowait – min/avg/max muda wa kuchelewa kusubiri IO ya diski.
  • kupogoa - min/avg/max count ya michakato katika hali inayoweza kutekelezeka (sawa na wastani wa upakiaji).
  • pblock – min/avg/max count ya michakato iliyozuiwa kwenye diski IO.
  • pstart - idadi ya michakato/nyuzi zilizoanzishwa katika muda huu wa muhtasari.

Bado kutoka kwa pato hapo juu, kwa mchakato fulani, safu wima tofauti zinamaanisha:

  • jina - jina la mchakato wa kawaida kutoka /proc/pid/stat au /proc/pid/cmdline.
  • pid - kitambulisho cha mchakato, pia hujulikana kama tgid.
  • min - sampuli ya chini kabisa ya muda wa mtumiaji+mfumo kwa pid, iliyopimwa kutoka /proc/pid/stat. Mizani ni asilimia ya CPU.
  • max - sampuli ya juu zaidi ya muda wa mtumiaji+mfumo kwa pid hii, pia kipimo kutoka /proc/pid/stat.
  • usr - wastani wa muda wa mtumiaji wa pid katika kipindi cha muhtasari, kipimo kutoka /proc/pid/stat.
  • sys – wastani wa muda wa mfumo kwa pid katika kipindi cha muhtasari, kipimo kutoka /proc/pid/stat.
  • nzuri - huonyesha thamani ya sasa nzuri kwa mchakato, inayopimwa kutoka /proc/pid/stat. Juu ina maana nzuri zaidi.
  • runq - muda wa mchakato na mazungumzo yake yote yametumika lakini yakingoja kutekelezwa, yanayopimwa kutoka kwa takwimu za kazi kupitia netlink. Mizani ni asilimia ya CPU.
  • iow - muda wa mchakato na nyuzi zake zote zilizotumiwa zikiwa zimezuiwa na diski IO, iliyopimwa kutokana na takwimu za kazi kupitia netlink. Kipimo ni asilimia ya CPU, wastani katika muda wa muhtasari.
  • badilishana - muda wa mchakato na mazungumzo yake yote yaliyotumiwa kusubiri kubadilishwa, kupimwa kutoka kwa takwimu za kazi kupitia netlink. Kipimo ni asilimia ya CPU, wastani katika muda wa muhtasari.
  • vcx na icx – jumla ya idadi ya swichi za muktadha wa hiari kulingana na mchakato na minyororo yake yote katika muda wa muhtasari, inayopimwa kutoka kwa takwimu za kazi kupitia netlink.
  • rss - thamani ya sasa ya RSS imechukuliwa kutoka /proc/pid/stat. Ni kiasi cha kumbukumbu ambacho mchakato huu unatumia.
  • ctime - jumla ya muda wa mtumiaji+sys CPU unaotumiwa na watoto wanaosubiriwa ambao waliondoka katika muda huu wa muhtasari, unaopimwa kutoka /proc/pid/stat.

Kumbuka kwamba michakato ya muda mrefu ya mtoto inaweza mara nyingi kuchanganya kipimo hiki, kwa sababu wakati unaripotiwa tu wakati mchakato wa mtoto unatoka. Walakini, hii ni muhimu kwa kupima athari za kazi za mara kwa mara za cron na ukaguzi wa afya ambapo wakati wa CPU mara nyingi hutumiwa na michakato mingi ya watoto.

  • tatu - idadi ya nyuzi mwishoni mwa muda wa muhtasari, iliyopimwa kutoka /proc/pid/stat.
  • sam - idadi ya sampuli za mchakato huu zilizojumuishwa katika muda wa muhtasari. Taratibu ambazo zimeanza au kutoka hivi majuzi zinaweza kuwa zimeonekana kwa sampuli chache kuliko muda wa muhtasari.

Amri ifuatayo inaonyesha michakato 10 ya juu ya mtumiaji inayoendesha kwenye mfumo:

$ sudo $GOBIN/cpustat -u root

Ili kuonyesha pato katika hali ya mwisho ya dhana, tumia alama ya -t kama ifuatavyo:

$ sudo $GOBIN/cpustat -u roo -t

Kuangalia michakato 20 ya juu ya Linux inayoendesha kwenye mfumo:

$ sudo $GOBIN/cpustat -n 20 

Unaweza pia kuandika wasifu wa CPU kwa faili ukitumia chaguo la -cpuprofile kama ifuatavyo kisha utumie paka amri kutazama faili:

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

Ili kuonyesha maelezo ya usaidizi, tumia alama ya -h kama ifuatavyo:

$ sudo $GOBIN/cpustat -h

Pata maelezo ya ziada kutoka kwa cpustat Github Repository: https://github.com/uber-common/cpustat

Ni hayo tu! Katika makala haya, tulikuonyesha jinsi ya kusakinisha na kutumia cpustat, chombo muhimu cha kupima utendaji wa mfumo kwa Linux. Shiriki mawazo yako nasi kupitia sehemu ya maoni hapa chini.