Continuăm să vorbim despre instrumente pentru evaluarea performanței procesorului pe Linux-mașini. Materialul de astăzi: temci, uarch-bench, likid, perf-tools și llvm-mca.
Mai multe repere:
Фото - — Unsplash
Acesta este un instrument pentru estimarea timpului de execuție a două programe. În esență, vă permite să comparați timpul de execuție a două aplicații. Autorul utilitarului a fost un student din Germania, Johannes Bechberger, care a dezvoltat-o ca parte a tezei sale de licență în 2016. Instrumentul de azi licențiat sub licența publică generală GNU.
Johannes a vrut să creeze un instrument care să-i permită să măsoare performanța unui sistem de calcul într-un mediu controlat. Prin urmare, una dintre principalele caracteristici ale temci este capacitatea de a configura un mediu de testare. De exemplu, : modificați setările managerului de frecvență CPU, dezactivați și cache-urile L1 și L2, dezactivați modul turbo pe procesoarele Intel etc. Pentru evaluare comparativă temci folosește instrumente , и .
Iată cum arată utilitatea în primul caz:
# 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
Pe baza rezultatelor benchmarking-ului, sistemul generează cu diagrame, tabele și grafice, care deosebește temci de soluții similare.
Dintre deficiențele temci, se remarcă „tinerețea” acestuia. Din această cauză el configurații hardware și software. De exemplu, este dificil să rulezi sub macOS, iar unele funcții nu sunt disponibile pe sistemele cu procesor ARM. Acest lucru se poate schimba în viitor, deoarece autorul dezvoltă activ proiectul, iar numărul de stele de pe GitHub crește treptat - nu cu mult timp în urmă, temci chiar pe Hacker News.
Un utilitar pentru evaluarea performanței funcțiilor CPU de nivel scăzut, dezvoltat de inginerul Travis Downs (). Recent a scris pe blog pe GitHub Pages, care vorbește despre instrumente de benchmarking și alte lucruri conexe. În general, uarch-bench abia începe să câștige popularitate, dar este deja destul de comun rezidenții Hacker News în fire tematice ca instrument de referință pentru benchmarking.
Uarch-bench vă permite să evaluați performanța memoriei, viteza de încărcare a datelor paralele și munca de curățare . Cum arată rezultatele benchmarking-ului generate de program poate fi găsit În josul paginii.
Este demn de remarcat faptul că uarch-bench, ca temci, Funcția Intel Turbo Boost (crește automat viteza ceasului procesorului sub sarcină) pentru ca rezultatele testului să fie consistente.
Deocamdată, proiectul se află în stadiile incipiente de dezvoltare, așa că uarch-bench nu are documentație detaliată, iar funcționarea sa poate conține erori - de exemplu, cu lansare pe Ryzen. De asemenea, sunt acceptate doar benchmark-urile pentru arhitecturile x86. Autorul promite că va adăuga mai multe funcționalități în viitor și vă invită să vă alăturați dezvoltării.
Acesta este un set de instrumente pentru evaluarea performanței Linux-aparate cu procesoare Intel, AMD și ARMv8. A fost creat sub auspiciile Ministerului Federal German al Educației și Cercetării în 2017 și lansat ca open source.
Dintre instrumentele likwid, putem evidenția likwid-powermeter, care afișează informații din registrele RAPL despre puterea consumată de sistem, precum și likwid-setFrequencies, care vă permite să controlați frecvența procesorului. Puteți vedea lista completă .
Instrumentul este folosit de inginerii implicați în cercetarea HPC. De exemplu, cu likwid un grup de specialiști de la Centrul Regional de Calcul al Universității din Erlangen-Nürnberg (RRZE) din Germania. De asemenea, ea participă activ la dezvoltarea acestui set de instrumente.

Фото - — Unsplash
Acesta este un instrument de analiză a performanței Linux-servere Brendan Gregg. El este unul dintre dezvoltatori — un cadru de urmărire dinamic pentru depanarea aplicațiilor în timp real.
perf-tools se bazează pe subsistemele perf_events și ftrace kernel. Utilitarele lor vă permit să analizați latența I/O (iosnoop), să urmăriți argumentele apelurilor de sistem (unccount, funcslower, funcgraph și functrace) și să colectați statistici despre „accesări” din memoria cache a fișierelor (cachestat). În ultimul caz, comanda arată astfel:
# ./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
În jurul instrumentului s-a format o comunitate destul de mare (). Și există companii care folosesc în mod activ instrumente de performanță, de exemplu . Dar instrumentul este dezvoltat și modificat în continuare (deși actualizările au fost lansate destul de rar în ultima vreme). Prin urmare, pot apărea erori în funcționarea sa - autorul scrie că uneori perf-tools provoacă panică nucleului.
Un utilitar care prezice câte resurse de calcul va necesita codul mașinii pe diferite procesoare. Ea Instrucțiuni pe ciclu () și încărcarea hardware-ului pe care o generează o anumită aplicație.
llvm-mca a fost prezentat în 2018 ca parte a proiectului , care dezvoltă un sistem universal de analiză, transformare și optimizare a programelor. Se știe că autorii lui llvm-mca s-au inspirat dintr-o soluție pentru analiza performanței software-ului și a căutat să creeze o alternativă. Și, potrivit utilizatorilor, rezultatul instrumentului (dispunerea și cantitatea lor) seamănă cu adevărat cu IACA - exemplu . Cu toate acestea, llvm-mca acceptă doar , așa că cel mai probabil va trebui să utilizați convertoare pentru a lucra cu el.
Despre ce scriem pe blogurile și rețelele noastre sociale:
![]()
![]()
![]()
![]()
![]()
Noi, cei de la 1cloud.ru oferim un serviciu gratuit „" Puteți gestiona înregistrările DNS într-un singur cont personal.
Sursa: www.habr.com
