Linux serverite tööhobid: avatud tööriistade ülevaade

Jätkame jutustamist Linuxi masinate CPU jõudluse hindamiseks mõeldud tööriistadest. Täna on teemas: temci, uarch-bench, likwid, perf-tools ja llvm-mca.

Rohkem teste:

Linux serverite tööhobid: avatud tööriistade ülevaade
Foto — Lukas Blazek — Unsplash

temci

See on tööriist kahe programmi täitmise aja hindamiseks. Tegelikult võimaldab see võrrelda kahe rakenduse käitusaega. Tööriista autor on Saksamaa tudeng Johannes Bechberger, kes arendas selle välja oma bakalaureuse lõputöö raames 2016. aastal. Täna levitatakse tööriista GNU Üldine Avaliku litsentsi alusel. Johannes tahtis luua tööriista, mis võimaldaks mõõta arvutisüsteemi jõudlust kontrollitud keskkonnas. Seetõttu on temci üks peamisi omadusi testkeskkonna konfigureerimise võimalus. Näiteks

Johannes soovis luua tööriista, mis võimaldaks mõõta arvutisüsteemi jõudlust kontrollitud keskkonnas. Seetõttu on temci üks peamisi omadusi testkeskkonna seadistamise võimalus. Näiteks, saab: muuta CPU sageduse halduri seadeid, keelata hyper-threading ja L1 ja L2 vahemälu välja lülitada, välja lülitada Intel'i protsessorite turbo režiim jne. Temci kasutab bänškardistamiseks tööriistu aeg, perf_stat ja getrusage.

Nii on, kuidas tööriist esimeses juhtumis välja näeb:

# 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

Benkmarkingu tulemustest koostab süsteem mugava aruande skeemide, tabelite ja diagrammidega, mis eristab temci sarnastest lahendustest.

temci miinusteks on selle "noorus". Selle tõttu ei toeta see kõiki riistvara ja tarkvara konfiguratsioone. Näiteks on seda keeruline käivitada macOS-is, ja ARM-protsessoriga süsteemis on mõned funktsioonid puuduvad. Tulevikus võib olukord muutuda, kuna autor arendab projekti aktiivselt ja tähed GitHubis kasvavad järk-järgult – mitte nii kaua tagasi arutati temci isegi kommentaarides Hacker News-is.

uarch-bench

Tööriist, mis hindab madala taseme CPU funktsioonide jõudlust, mille on loonud insener Travis Downs (Travis Downs). Viimasel ajal kirjutab ta oma blogis Performance Matters GitHub Pages'is, kus räägib benkmarkingu tööriistadest ja muudest seotud asjadest. Kokkuvõttes on uarch-bench alles alustamas populaarsuse saavutamist, kuid seda mainitakse juba üsna sageli Hacker News residentide poolt temaatilistes niitides kui go-to tööriista benkmarkingu jaoks. Hacker News'i residentide poolt teemasiseselt thread'ides kui eelistatud tööriist bänkimiseks.

Uarch-bench võimaldab hinnata mälu jõudlust, andmete paralleelse laadimise kiirus ja puhastustööd YMM-register. Kuidas bänkingu tulemused, mida programm genereerib, välja näevad, võib leida ametlikust hoidlast lehe allosas.

Oluline on märkida, et uarch-bench, nagu temci, keelab Intel Turbo Boost funktsiooni (see suurendab automaatselt protsessori taktsagedust koormuse all), et testimistulemused oleksid ühtlased.

Praegu on projekt varases arendusetapis, seega ei ole uarch-bench'il põhjalikku dokumentatsiooni ning selle töös võivad esineda tõrked - näiteks on teada keerukusi Ryzeni käivitamisel. Samuti toetatakse vaid x86 arhitektuuride bänkinguid. Autor lubab tulevikus rohkem funktsionaalsust lisada ja kutsub arendusse liituma.

likwid

See on tööriistade komplekt Linuxi masinate jõudluse hindamiseks Intel, AMD ja ARMv8 protsessoritega. See loodi Saksamaa Föderaalse Haridus- ja Teadusministeeriumi toetusel 2017. aastal ja antakse avatud lähtekoodiga.

Likwid tööriistade seas on esikohal likwid-powermeter, mis kuvab RAPL-registeritest saadavat teavet süsteemi energia tarbimise kohta, ning likwid-setFrequencies — kahe tööriista kuuluvuse funktsioon, mis võimaldab jälgida protsessori sagedust. Täieliku nimekirja leiate hoidlast.

Tööriista kasutavad insenerid, kes tegelevad HPC uurimistööga. Näiteks töötab likwid koos Riena ülikooli Erlangen-Nürnbergi piirkondliku arvutuskeskuse (RRZE) spetsialistide rühm Saksamaal. Samuti osalevad nad aktiivselt selle tööriistakomplekti arendamisel.

Linux serverite tööhobid: avatud tööriistade ülevaade
Foto — Clem Onojeghuo — Unsplash

perf-tools

See vahend on mõeldud Linuxi serverite jõudluse analüüsimiseks esitles Brendan Gregg. Ta on üks arendajatest DTrace — dünaamilise jälgimise raamistik, mis aitab rakenduste reaalaja tõrkeotsingul.

Perf-tools põhinevad kernelis olevatel perf_events ja ftrace alussüsteemidel. Nende utiliidid võimaldavad analüüsida sisendi ja väljundi viivitusi (iosnoop), jälgida süsteemi väljakutsete аргумеента (unccount, funcslower, funcgraph ja functrace) ning koguda statistikat 'puudutuste' kohta failide vahemälus (cachestat). Viimase puhul näeb käsk välja järgmiselt:

# ./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

Tööriista ümber on kujunenud ulatuslik kogukond (peaaegu 6 tuhat tähte GitHubis). On ka ettevõtteid, kes kasutavad aktiivselt perf-tools, näiteks Netflix. Kuid tööriista arendatakse ja muudetakse (kuigi viimastel aegadel on uuendused toimunud üsna harva). Seetõttu võivad selle töös esineda vead — autor märgib, et mõnikord kutsub perf-tools esile kernel panicu.

llvm-mca

Tööriist, mis prognoosib, kui palju arvutusressursse on erinevatel CPU-del vajalik masinakoodile. See hindab Instructions Per Cycle (IPC) ja koormust riistvarale, mida genereerib see või teine rakendus.

llvm-mca esitati 2018. aastal projekti raames LLVM, mis tegeleb universaalse analüüsi, transformatsiooni ja optimiseerimise süsteemi arendamisega. Teadaolevalt inspireeriti llvm-mca autoreid Intel'i analüüsitööriistast IACA ja nad püüdsid luua selle alternatiivi. Kasutajate sõnul meenutavad tööriista väljundid (nende tähistus ja arv) tõesti IACA-d — näidet võib leida siit. Kuid llvm-mca tunnustab ainult AT&T-süntaksit, seega tuleb selle kasutamiseks tõenäoliselt kasutada konvertereid.

Millest me kirjutame oma blogides ja sotsiaalmeedias:

Linux serverite tööhobid: avatud tööriistade ülevaade „Matemaatiline mudel Wall Streetilt“ või kuidas optimeerida pilvekulutusi

Linux serverite tööhobid: avatud tööriistade ülevaade Kuidas kindlustada Linuxi süsteemi: 10 soovitust
Linux serverite tööhobid: avatud tööriistade ülevaade Riskide minimeerimine: kuidas mitte kaotada oma andmeid

Linux serverite tööhobid: avatud tööriistade ülevaade Raamatud neile, kes juba tegelevad süsteemi adminsitratsiooniga või plaanivad alles alustada
Linux serverite tööhobid: avatud tööriistade ülevaade Kogumik: viie raamatu ja ühe kursuse kohta võrkude

Linux serverite tööhobid: avatud tööriistade ülevaadeMeie 1cloud.ru-s pakume tasuta teenust „DNS-hosting“. DNS-kirjeid on võimalik hallata meie ühtses isiklikus kabinetis.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster