Benchmarks pentru serverele Linux: o selecție de instrumente deschise

Continuăm să vorbim despre instrumente pentru evaluarea performanței CPU pe mașinile Linux. Astăzi în material: temci, uarch-bench, likwid, perf-tools și llvm-mca.

Mai multe repere:

Benchmarks pentru serverele Linux: o selecție de instrumente deschise
Фото - Lukas Blazek — Unsplash

temci

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 distribuit de 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, Se poate: modificați setările managerului de frecvență CPU, dezactivați hiper-threading și cache-urile L1 și L2, dezactivați modul turbo pe procesoarele Intel etc. Pentru evaluare comparativă temci folosește instrumente timp, perf_stat и getrusage.

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ă raport convenabil 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 nu totul este suportat configurații hardware și software. De exemplu, este dificil să rulați pe macOS, iar unele funcții nu sunt disponibile pe un sistem bazat pe ARM. În viitor, situația se poate schimba, deoarece autorul dezvoltă în mod activ proiectul, iar numărul de stele de pe GitHub crește treptat - nu cu mult timp în urmă temci chiar discutat în comentarii pe Hacker News.

uarch-banc

Un utilitar pentru evaluarea performanței funcțiilor CPU de nivel scăzut, dezvoltat de inginerul Travis Downs (Travis Downs). Recent a scris pe blog Performanța contează 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 menționat 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 registre YMM. Cum arată rezultatele benchmarking-ului generate de program poate fi găsit în depozitul oficial În josul paginii.

Este demn de remarcat faptul că uarch-bench, ca temci, dezactivează 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, dificultăţile sunt cunoscute 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.

lichid

Acesta este un set de instrumente pentru evaluarea performanței mașinilor Linux cu procesoare Intel, AMD și ARMv8. A fost creat sub auspiciile Ministerului Federal German al Educației și Cercetării în 2017 și lansat în sursă deschisă.

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ă găsiți în depozit.

Instrumentul este folosit de inginerii implicați în cercetarea HPC. De exemplu, cu likwid fabrică 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.

Benchmarks pentru serverele Linux: o selecție de instrumente deschise
Фото - Clem Onojeghuo — Unsplash

perf-instrumente

Acest instrument pentru analiza performanței serverelor Linux a prezentat Brendan Gregg. El este unul dintre dezvoltatori DTrace — 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 (aproape 6 mii de stele pe GitHub). Și există companii care folosesc în mod activ instrumente de performanță, de exemplu Netflix. 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.

llvm-mca

Un utilitar care prezice câte resurse de calcul va necesita codul mașinii pe diferite procesoare. Ea evaluează Instrucțiuni pe ciclu (IPC) și încărcarea hardware-ului pe care o generează o anumită aplicație.

llvm-mca a fost prezentat în 2018 ca parte a proiectului LLVM, 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 IACA de la Intel ș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 poate fi găsit aici. Cu toate acestea, llvm-mca acceptă doar Sintaxa AT&T, 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:

Benchmarks pentru serverele Linux: o selecție de instrumente deschise "Mat. Modelul Wall Street” sau cum să optimizați costurile cloud

Benchmarks pentru serverele Linux: o selecție de instrumente deschise Cum să vă securizați sistemul Linux: 10 sfaturi
Benchmarks pentru serverele Linux: o selecție de instrumente deschise Minimizarea riscurilor: cum să nu vă pierdeți datele

Benchmarks pentru serverele Linux: o selecție de instrumente deschise Cărți pentru cei care sunt deja implicați în administrarea sistemului sau doar plănuiesc să înceapă
Benchmarks pentru serverele Linux: o selecție de instrumente deschise Selecție: cinci cărți și un curs despre rețele

Benchmarks pentru serverele Linux: o selecție de instrumente deschiseNoi, cei de la 1cloud.ru oferim un serviciu gratuit „Gazduire DNS" Puteți gestiona înregistrările DNS într-un singur cont personal.

Sursa: www.habr.com

Adauga un comentariu