Cpustat - Na-enyocha ojiji CPU site na usoro ịgba ọsọ na Linux
Cpustat bụ mmemme tụọ arụmọrụ sistemụ siri ike maka Linux, ejiri asụsụ mmemme Go dee. Ọ na-anwa ikpughe itinye n'ọrụ na saturation CPU n'ụzọ dị irè, na-eji Usoro Saturation na Errors (USE) Utilisation (usoro iji nyochaa arụmọrụ nke sistemụ ọ bụla).
Ọ na-ewepụta ihe nlele ugboro ugboro nke usoro ọ bụla a na-eme na sistemụ wee chịkọta ihe nlele ndị a na obere oge. Dịka ọmụmaatụ, ọ nwere ike tụọ usoro ọ bụla kwa 200ms ma chịkọta ihe nlele ndị a kwa sekọnd ise ọ bụla, gụnyere ụkpụrụ min/nkezi/max maka ụfọdụ metrik.
Cpustat na-ewepụta data n'ụzọ abụọ enwere ike: ndepụta ederede dị ọcha nke oge nchịkọta yana dashboard mpịakọta mara mma nke nlele ọ bụla.
Otu esi etinye CPUstat na Linux
Ị ga-etinyerịrị Go (GoLang) na sistemụ Linux gị iji jiri cpustat, pịa njikọ dị n'okpuru iji soro usoro nrụnye GoLang bụ ma ọ bụrụ na itinyeghị ya:
- Wụnye GoLang (Go Programming Language) na Linux
Ozugbo i tinyechara Go, pịnye iwu na-aga n'okpuru iji wụnye ya, iwu a ga-etinye ọnụọgụ cpustat na mgbanwe GOBIN gị:
# go get github.com/uber-common/cpustat
Otu esi eji CPUstat na Linux
Mgbe usoro nrụnye ahụ mechara, gbaa cpustat dị ka ndị a na ikike mgbọrọgwụ site na iji iwu sudo bụ ma ọ bụrụ na ị na-achịkwa usoro ahụ dị ka onye na-abụghị mgbọrọgwụ, ma ọ bụghị na ị ga-enweta njehie dị ka egosiri:
$ $GOBIN/cpustat This program uses the netlink taskstats interface, so it must be run as root.
Mara: Iji mee cpustat yana mmemme Go ndị ọzọ ị rụnyere na sistemụ gị dị ka iwu ọ bụla ọzọ, tinye GOBIN variable na mgbanwe gburugburu PATH gị. Mepee njikọ dị n'okpuru ka ịmụta ka esi edobe mgbanwe PATH na Linux.
- Mụta ka esi edobe mgbanwe PATH gị na-adịgide adịgide na Linux
Nke a bụ otú CPUstat si arụ ọrụ; a na-ajụ akwụkwọ ndekọ /proc
ka ị nweta ndepụta NJ usoro dị ugbu a maka oge ọ bụla, yana:
- maka PID ọ bụla, gụọ /proc/pid/stat, wee gbakọọ ọdịiche dị na nlele gara aga.
- ọ bụrụ na ọ bụ PID ọhụrụ, gụọ /proc/pid/cmdline.
- maka PID nke ọ bụla, ziga ozi netlink iji weta ihe ndekọ ọrụ, gbakọọ ọdịiche dị na nlele gara aga.
- fetch /proc/stat iji nweta mkpokọta sistemụ.
Ọzọ, a na-edozi oge ihi ụra nke ọ bụla ka ọ bụrụ na ọ ga-ewe oge iji weta stats ndị a niile. Ọzọkwa, nlele ọ bụla na-edekọkwa oge o were iji tụọ nha ọ bụla site na oge gafere n'etiti ihe nlele. Nke a na-anwa ịkọwa maka igbu oge na cpustat n'onwe ya.
Mgbe ọ na-agba ọsọ na-enweghị arụmụka ọ bụla, cpustat ga-egosipụta ihe ndị a na ndabara: oge nlele: 200ms, oge nchịkọta: 2s (10 samples), na-egosi n'elu 10 procs, onye ọrụ nzacha: niile, pid filter: niile dị ka egosiri na nseta ihuenyo n'okpuru:
$ sudo $GOBIN/cpustat
Site na nsonaazụ dị n'elu, ihe ndị a bụ nkọwa nke metrik nchịkọta zuru oke nke usoro egosiri n'ihu ubi:
- usr – min/apaj/max ọnọdụ onye ọrụ na-agba oge dị ka pasenti nke CPU.
- sys – nkeji/ajg/max usoro na-agba oge dị ka pasenti nke CPU.
- nice – min/avg/max ọnọdụ onye ọrụ obere oge ịgba ọsọ dị ka pasenti nke CPU.
- na-adịghị - nkeji/apapọ/max ọnọdụ onye ọrụ na-agba ọsọ oge dị ka pasenti nke CPU.
- iowait – nkeji/apapọ/max oge igbu oge na-echere IO diski.
- prun – min/apapọ/max ọnụ nke usoro n'ime ọnọdụ ịgba ọsọ (otu ihe dị ka nkezi ibu).
- pblock – nkeji/apapọ/max ọnụ nke usoro akpọchiri na diski IO.
- bido – ọnụọgụ usoro/eriri bidoro n’ime oge nchịkọta a.
N'agbanyeghị site na mmepụta n'elu, maka usoro enyere, kọlụm dị iche iche pụtara:
- aha – aha usoro a na-ahụkarị site na /proc/pid/stat ma ọ bụ /proc/pid/cmdline.
- pid – usoro id, nke a na-akpọkwa “tgid”
- min - nlele kacha ala nke oge sistemụ onye ọrụ + maka pid, tụrụ site na /proc/pid/stat. Ọnụ ọgụgụ bụ pasent nke CPU.
- max – ihe nlele kacha elu nke oge sistemụ onye ọrụ maka pid a, atụkwara ya site na /proc/pid/stat.
- usr – nkezi oge onye ọrụ maka pid n'ime oge nchịkọta, tụrụ site na /proc/pid/stat.
- sys – nkezi oge sistemụ maka pid n'ime oge nchịkọta, tụrụ site na /proc/pid/stat.
- mara mma – na-egosi uru “mma” dị ugbu a maka usoro a, tụrụ site na /proc/pid/stat. Elu pụtara “mma”.
- runq - oge usoro na eri ya niile ejiri na-agba ọsọ mana na-eche ka ọ na-agba ọsọ, tụrụ site na taskstats site na netlink. Ọnụ ọgụgụ bụ pasent nke CPU.
- iow - oge usoro na eri ya niile ejiri diski IO kpuchiri, tụọ site na taskstats site na netlink. Ọnụ ọgụgụ bụ pasenti nke CPU, nke a na-agbakọ karịa oge nchịkọta.
- swap - oge usoro na eri ya niile nọrọ na-eche ka atụgharị ya, tụọ site na taskstats site na netlink. Ọnụ ọgụgụ bụ pasenti nke CPU, nke a na-agbakọ karịa oge nchịkọta.
- vcx na icx – ngụkọta ọnụ ọgụgụ nke afọ ofufo gbara gburugburu na-agbanwe site na usoro na eri ya niile n'ofe oge nchịkọta, tụrụ site na taskstats site na netlink.
- rss – uru RSS enwetara site na /proc/pid/stat. Ọ bụ ego ole usoro a na-eji.
- oge - nchikota nke onye ọrụ+sys oge CPU riri site na-echere ụmụaka ndị na-apụ n'oge oge nchịkọta a, tụrụ site na /proc/pid/stat.
Rịba ama na usoro ụmụaka na-agba ọsọ ogologo oge nwere ike ịmegharị nha a, n'ihi na a na-akọ oge naanị mgbe usoro nwatakịrị na-apụ. Otú ọ dị, nke a bara uru maka ịlele mmetụta nke ọrụ cron ugboro ugboro na nyocha ahụike ebe ọtụtụ usoro ụmụaka na-eri oge CPU oge.
- Nke atọ – ọnụọgụ eri na ngwụcha nke oge nchịkọta, tụrụ site na /proc/pid/stat.
- sam - ọnụọgụ nlele maka usoro a gụnyere n'ime oge nchịkọta. Usoro malitere na nso nso a ma ọ bụ pụta nwere ike ịhụ ya maka nlele dị ole na ole karịa oge nchịkọta.
Iwu na-esonụ na-egosiputa usoro ọrụ mgbọrọgwụ 10 kachasị na-agba ọsọ na sistemụ:
$ sudo $GOBIN/cpustat -u root
Iji gosipụta mmepụta n'ụdị njedebe mara mma, jiri ọkọlọtọ -t
dị ka ndị a:
$ sudo $GOBIN/cpustat -u roo -t
Ka ilele usoro Linux 20 kachasị na-arụ na sistemụ:
$ sudo $GOBIN/cpustat -n 20
Ị nwekwara ike dee profaịlụ CPU na faịlụ site na iji -cpuprofile
nhọrọ dị ka ndị a wee jiri iwu nwamba hụ faịlụ:
$ sudo $GOBIN/cpustat -cpuprofile cpuprof.txt $ cat cpuprof.txt
Iji gosi ozi enyemaka, jiri ọkọlọtọ -h
dị ka ndị a:
$ sudo $GOBIN/cpustat -h
Chọta ozi ndị ọzọ sitere na cpustat Github Repository: https://github.com/uber-common/cpustat
Ọ gwụla! N'ime edemede a, anyị gosiri gị otu esi etinye ma jiri cpustat, ngwa ọrụ arụmọrụ sistemụ bara uru maka Linux. Gwa anyị echiche gị site na ngalaba nkọwa n'okpuru.