Benchmarks pentru servere pe Linux: selecție de instrumente open source

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

Mai multe benchmark-uri:

Benchmarks pentru servere pe Linux: selecție de instrumente open source
Fotografie — Lukas Blazek — Unsplash

temci

Acesta este un instrument pentru evaluarea timpului de execuție a două programe. Practic, permite compararea timpului de execuție pentru două aplicații. Autorul utilitarului este un student din Germania, Johannes Bechberger, care l-a dezvoltat în cadrul lucrării de licență în 2016. Astăzi, instrumentul se răspândește este disponibil sub licența GNU General Public License.

Johannes a dorit să creeze un instrument care să permită măsurarea performanței sistemului de calcul într-un mediu controlat. Prin urmare, una dintre caracteristicile principale ale temci este posibilitatea de a configura mediul de testare. De exemplu, poate: modificarea setărilor controlerului frecvenței CPU, dezactivarea hyper-threading-ului și a cache-urilor L1 și L2, dezactivarea modului turbo pe procesoarele Intel și altele. Pentru benchmarking, temci folosește instrumentele time, perf_stat și getrusage.

Iată cum arată funcționarea utilitarului în prima situație:

# 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ă un raport convenabil cu scheme, tabele și grafice, ceea ce diferențiază temci de soluțiile analogice.

Printre dezavantajele temci se numără «tinerețea» sa. Din acest motiv, acesta nu suportă toate configurațiile hardware și software. De exemplu, este greu de rulat pe macOS, iar pe un sistem cu procesor ARM, unele funcții nu sunt disponibile. În viitor, situația s-ar putea schimba, deoarece autorul dezvoltă activ proiectul, iar numărul de stele pe GitHub crește treptat – nu cu mult timp în urmă, temci a fost chiar discutat în comentarii pe Hacker News.

uarch-bench

Un utilitar pentru evaluarea performanței funcțiilor de nivel jos ale CPU, dezvoltat de inginerul Travis Downs (Travis Downs). De curând, el își desfășoară blogul Performance Matters pe GitHub Pages, în care discută despre instrumente de benchmarking și alte subiecte conexe. În general, uarch-bench abia începe să câștige popularitate, dar este deja menționat destul de des menționat de rezidenții Hacker News în discuții tematice ca un instrument de bază pentru benchmarking.

uarch-bench permite evaluarea performanței memoriei, vitezei de încărcare paralelă a datelor și a procesului de curățare a registrilor YMMCum arată rezultatele benchmarking-ului generate de program, pot fi găsite în repository-ul oficial în partea de jos a paginii.

Merită menționat că uarch-bench, la fel ca temci, dezactivează funcția Intel Turbo Boost (care crește automat frecvența procesorului sub sarcină), astfel încât rezultatele testării să fie consistente.

Până acum, proiectul se află în stadii incipiente de dezvoltare, așa că uarch-bench nu are documentație detaliată, iar în funcționarea sa pot apărea bug-uri — de exemplu, sunt cunoscute dificultăți cu rularea pe Ryzen. De asemenea, sunt suportate doar benchmarking-uri pentru arhitecturile x86. Autorul promite că va adăuga mai multe funcționalități în viitor și invită să se alăture dezvoltării.

likwid

Acesta este un set de instrumente pentru evaluarea performanței mașinilor Linux cu procesoare Intel, AMD și ARMv8. A fost creat sub egida Ministerului Federal al Educației și Cercetării din Germania în 2017 și a fost transmis în open source.

Printre instrumentele likwid se remarcă likwid-powermeter, care oferă informații din registrele RAPL despre puterea consumată de sistem, precum și likwid-setFrequencies — care permite controlul frecvenței procesorului. Lista completă o puteți căuta în repository.

Instrumentul este utilizat de inginerii care se ocupă cu cercetările în domeniul HPC. De exemplu, cu likwid lucrează un grup de specialiști de la Centrul Regional de Calcul al Universității Erlangen-Nürnberg (RRZE) din Germania. Aceștia participă activ la dezvoltarea acestui set de instrumente.

Benchmarks pentru servere pe Linux: selecție de instrumente open source
Fotografie — Clem Onojeghuo — Unsplash

perf-tools

Acest instrument pentru analiza performanței serverelor Linux a prezentat Brendan Gregg. El este unul dintre dezvoltatorii DTrace — framework-ului de urmărire dinamică pentru depanarea aplicațiilor în timp real.

Perf-tools se bazează pe subsistemele nucleului perf_events și ftrace. Utilitarele acestora permit analizarea întârzierii de intrare/ieșire (iosnoop), urmărirea argumentelor apelurilor de sistem (unccount, funcslower, funcgraph și functrace) și colectarea statisticilor despre "loviturile" în cache-ul de fișiere (cachestat). În acest ultim 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 extinsă (aproape 6 mii de stele pe GitHub). Și există companii care utilizează activ perf-tools, de exemplu Netflix. Instrumentul este în continuă dezvoltare și modificare (deși, în ultima vreme, actualizările apar destul de rar). De aceea, pot apărea erori în funcționarea sa — autorul menționează că uneori perf-tools provoacă panică în kernel.

llvm-mca

O utilitate care prezice câte resurse de calcul va necesita codul mașină pe diferite CPU. Aceasta evaluează Instructions Per Cycle (IPC) și încărcătura pe hardware generată de aplicațiile respective.

llvm-mca a fost prezentat în 2018 ca parte a proiectului LLVM, care se ocupă cu dezvoltarea unui sistem universal de analiză, transformare și optimizare a programelor. Este cunoscut faptul că autorii llvm-mca s-au inspirat din soluția pentru analiza performanței software-ului IACA de la Intel și și-au propus să creeze o alternativă. Și, potrivit utilizatorilor, rezultatele instrumentului (structura și cantitatea acestora) sunt, într-adevăr, asemănătoare cu IACA — un exemplu se pot găsi aici. Totuși, llvm-mca acceptă doar sintaxă AT&T, așa că, pentru a lucra cu el, va fi necesar să folosești convertere.

Despre ce scriem pe blogurile și rețelele noastre sociale:

Benchmarks pentru servere pe Linux: selecție de instrumente open source „Model matematic de pe Wall Street” sau cum să optimizezi costurile pe cloud

Benchmarks pentru servere pe Linux: selecție de instrumente open source Cum să securizezi sistemul Linux: 10 sfaturi
Benchmarks pentru servere pe Linux: selecție de instrumente open source Minimizarea riscurilor: cum să nu-ți pierzi datele

Benchmarks pentru servere pe Linux: selecție de instrumente open source Cărți pentru cei care sunt deja administratori de sistem sau care plănuiesc să înceapă
Benchmarks pentru servere pe Linux: selecție de instrumente open source Selecție: cinci cărți și un curs despre rețele

Benchmarks pentru servere pe Linux: selecție de instrumente open sourceNoi la 1cloud.ru oferim un serviciu gratuit de „DNS-hosting“. Gestionați înregistrările DNS în biroul nostru unic.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster