Vigezo vya seva za Linux: uteuzi wa zana zilizo wazi

Tunaendelea kuzungumzia zana za kutathmini utendaji wa CPU kwenye mashine za Linux. Leo katika nyenzo: temci, uarch-benchi, likwid, perf-zana na llvm-mca.

Vigezo zaidi:

Vigezo vya seva za Linux: uteuzi wa zana zilizo wazi
Picha - Lukas Blazek - Unsplash

temci

Hii ni zana ya kukadiria wakati wa utekelezaji wa programu mbili. Kimsingi, hukuruhusu kulinganisha wakati wa utekelezaji wa programu mbili. Mwandishi wa shirika hilo alikuwa mwanafunzi kutoka Ujerumani, Johannes Bechberger, ambaye aliiendeleza kama sehemu ya nadharia yake ya bachelor mnamo 2016. Zana ya leo kusambazwa na iliyopewa leseni chini ya Leseni ya Jumla ya Umma ya GNU.

Johannes alitaka kuunda chombo ambacho kingemruhusu kupima utendakazi wa mfumo wa kompyuta katika mazingira yaliyodhibitiwa. Kwa hiyo, moja ya sifa kuu za temci ni uwezo wa kuanzisha mazingira ya mtihani. Kwa mfano, mtu anaweza: badilisha mipangilio ya msimamizi wa mzunguko wa CPU, zima hyper-threading na kache za L1 na L2, zima hali ya turbo kwenye vichakataji vya Intel, n.k. Kwa ulinganishaji temci hutumia zana. wakati, perf_stat ΠΈ getrusage.

Hivi ndivyo matumizi yanavyoonekana katika kesi ya kwanza:

# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times                [####################################]  100%
Report for single runs
sleep 0.1            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      100.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1800k, deviation = 3.86455%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

sleep 0.2            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      200.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1968k, deviation = 3.82530%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

Kulingana na matokeo ya uwekaji alama, mfumo huzalisha ripoti rahisi na michoro, meza na grafu, ambayo hutofautisha temci kutoka kwa ufumbuzi sawa.

Miongoni mwa mapungufu ya temci, "vijana" wake hujitokeza. Kwa sababu hii yeye sio kila kitu kinaungwa mkono usanidi wa vifaa na programu. Kwa mfano, ni vigumu kuendesha kwenye macOS, na vipengele vingine havipatikani kwenye mfumo wa ARM. Katika siku zijazo, hali inaweza kubadilika, kama mwandishi anaendeleza mradi kikamilifu, na idadi ya nyota kwenye GitHub inaongezeka hatua kwa hatua - sio muda mrefu uliopita temci hata. kujadiliwa katika maoni kwenye Habari za Wadukuzi.

uarch-benchi

Huduma ya kutathmini utendakazi wa utendaji wa kiwango cha chini cha CPU, iliyotengenezwa na mhandisi Travis Downs (Travis Downs) Hivi majuzi amekuwa akiblogi Mambo ya Utendaji kwenye Kurasa za GitHub, ambayo inazungumza juu ya zana za kuweka alama na vitu vingine vinavyohusiana. Kwa ujumla, uarch-benchi inaanza tu kupata umaarufu, lakini tayari ni ya kawaida kabisa zilizotajwa wakazi wa Hacker News katika nyuzi mada kama zana ya kwenda kwa kuweka alama.

Uarch-benchi hukuruhusu kutathmini utendaji wa kumbukumbu, kasi ya upakiaji wa data sambamba na kazi ya kusafisha Usajili wa YMM. Jinsi matokeo ya ulinganishaji yanayotokana na programu yanaonekana yanaweza kupatikana katika hazina rasmi chini ya ukurasa.

Inafaa kumbuka kuwa uarch-benchi, kama temci, hutenganisha Intel Turbo Boost kazi (inaongeza moja kwa moja kasi ya saa ya processor chini ya mzigo) ili matokeo ya mtihani yawe sawa.

Kwa sasa, mradi huo uko katika hatua za mwanzo za maendeleo, kwa hivyo benchi ya uarch haina nyaraka za kina, na uendeshaji wake unaweza kuwa na mende - kwa mfano, magumu yanajulikana na uzinduzi kwenye Ryzen. Pia, alama za usanifu wa x86 pekee ndizo zinazotumika. Mwandishi anaahidi kuongeza utendaji zaidi katika siku zijazo na anakualika ujiunge na ukuzaji.

kioevu

Hii ni seti ya zana za kutathmini utendakazi wa mashine za Linux na vichakataji vya Intel, AMD na ARMv8. Iliundwa chini ya ufadhili wa Wizara ya Elimu na Utafiti ya Shirikisho la Ujerumani mnamo 2017 na kutolewa katika chanzo huria.

Miongoni mwa zana za likwid, tunaweza kuangazia likwid-powermeter, ambayo inaonyesha taarifa kutoka kwa rejista za RAPL kuhusu nguvu zinazotumiwa na mfumo, pamoja na likwid-setFrequencies, ambayo inakuwezesha kudhibiti mzunguko wa processor. Unaweza kuona orodha kamili pata kwenye hifadhi.

Chombo hiki kinatumiwa na wahandisi wanaohusika katika utafiti wa HPC. Kwa mfano, na likwid kazi kundi la wataalamu kutoka Kituo cha Kompyuta cha Mkoa cha Chuo Kikuu cha Erlangen-Nuremberg (RRZE) nchini Ujerumani. Pia anashiriki kikamilifu katika maendeleo ya seti hii ya zana.

Vigezo vya seva za Linux: uteuzi wa zana zilizo wazi
Picha - Clem Onojeghuo - Unsplash

zana-perf

Chombo hiki cha kuchambua utendaji wa seva za Linux kuletwa Brendan Gregg. Yeye ni mmoja wa watengenezaji DTrace - mfumo thabiti wa ufuatiliaji wa utatuzi wa programu kwa wakati halisi.

zana za perf zinatokana na perf_events na mifumo ndogo ya ftrace kernel. Huduma zao hukuruhusu kuchanganua muda wa I/O (iosnoop), kufuatilia hoja za simu za mfumo (unccount, funcslower, funcgraph na functrace) na kukusanya takwimu za "hits" kwenye kashe ya faili (cachestat). Katika kesi ya mwisho, amri inaonekana kama hii:

# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9

Jumuiya kubwa imeunda karibu na chombo (karibu nyota elfu 6 kwenye GitHub) Na kuna makampuni ambayo hutumia kikamilifu zana za perf, kwa mfano Netflix. Lakini zana hiyo inaendelezwa zaidi na kurekebishwa (ingawa sasisho zimetolewa mara chache sana hivi majuzi). Kwa hiyo, makosa yanaweza kutokea katika uendeshaji wake - mwandishi anaandika kwamba wakati mwingine vifaa vya perf husababisha hofu ya kernel.

llvm-mca

Huduma inayotabiri ni nambari ngapi za mashine ya rasilimali za kompyuta itahitaji kwenye CPU tofauti. Yeye hutathmini Maagizo kwa Kila Mzunguko (IPC) na mzigo kwenye vifaa ambavyo programu fulani hutoa.

llvm-mca iliwasilishwa mnamo 2018 kama sehemu ya mradi huo LLVM, ambayo inaunda mfumo wa ulimwengu kwa uchambuzi, mabadiliko na uboreshaji wa programu. Inajulikana kuwa waandishi wa llvm-mca walitiwa moyo na suluhisho la kuchambua utendaji wa programu. IACA kutoka Intel na kutafuta njia mbadala. Na kulingana na watumiaji, pato la chombo (mpangilio na idadi yao) inafanana na IACA - mfano. inaweza kupatikana hapa. Walakini, llvm-mca inakubali tu Sintaksia ya AT&T, kwa hivyo utalazimika kutumia vibadilishaji kufanya kazi nayo.

Tunachoandika kwenye blogi zetu na mitandao ya kijamii:

Vigezo vya seva za Linux: uteuzi wa zana zilizo wazi "Mat. Mfano wa Wall Street" au jinsi ya kuongeza gharama za wingu

Vigezo vya seva za Linux: uteuzi wa zana zilizo wazi Jinsi ya kulinda mfumo wako wa Linux: Vidokezo 10
Vigezo vya seva za Linux: uteuzi wa zana zilizo wazi Kupunguza hatari: jinsi ya kutopoteza data yako

Vigezo vya seva za Linux: uteuzi wa zana zilizo wazi Vitabu kwa wale ambao tayari wanahusika katika utawala wa mfumo au wanapanga tu kuanza
Vigezo vya seva za Linux: uteuzi wa zana zilizo wazi Uteuzi: vitabu vitano na kozi moja kwenye mitandao

Vigezo vya seva za Linux: uteuzi wa zana zilizo waziSisi kwa 1cloud.ru tunatoa huduma ya bure "Upangishaji wa DNS" Unaweza kudhibiti rekodi za DNS katika akaunti moja ya kibinafsi.

Chanzo: mapenzi.com

Kuongeza maoni