Benchmarkovi za poslužitelje na Linuxu: zbirka otvorenih alata

Nastavljamo pričati o alatima za procjenu performansi CPU-a na Linux strojevima. Danas u materijalu: temci, uarch-bench, likwid, perf-tools i llvm-mca.

Više benchmarka:

Benchmarkovi za poslužitelje na Linuxu: zbirka otvorenih alata
Fotografija – Lukas Blazek – Unsplash

temci

To je alat za procjenu vremena izvršavanja dviju aplikacija. U suštini, omogućava usporedbu vremena izvršavanja dvaju programa. Autor ovog alata je student iz Njemačke, Johannes Bechberger, koji ga je razvio u okviru svog diplomskog rada 2016. godine. Danas je alat distribuira se pod licencom GNU General Public License.

Johannes je želio stvoriti alat koji bi omogućio mjerenje performansi računalnog sustava u kontroliranom okruženju. Stoga je jedna od glavnih značajki temci mogućnost prilagodbe testnog okruženja. Na primjer, možete: promijeniti postavke upravitelja frekvencije CPU-a, onemogućiti hyper-threading i L1 i L2 cache, isključiti turbo mod na Intelovim procesorima i druge opcije. Za benchmarking temci koristi alate time, perf_stat i getrusage.

Evo kako izgleda rad alata u prvom slučaju:

# 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

Na temelju rezultata benchmarka, sustav generira praktično izvješće s shemama, tablicama i grafikonima, što temci razlikuje od sličnih rješenja.

Među nedostacima temci ističe se njegova "mladost". Zbog toga ne podržava sve konfiguracije hardvera i softvera. Na primjer, teško ga je pokrenuti na macOS-u, a na sustavima s ARM procesorima nedostupne su neke funkcije. U budućnosti bi se situacija mogla promijeniti, jer autor aktivno razvija projekt, a broj zvjezdica na GitHubu postupno raste - nedavno se čak raspravljalo o temci u komentarima na Hacker News.

uarch-bench

Alat za procjenu performansi niskonivojskih funkcija CPU-a, koji je razvio inženjer Travis Downs. Od nedavno vodi svoj blogPerformance Mattersna GitHub Pages, gdje govori o alatima za benchmarking i srodnim temama. U cjelini, uarch-bench tek počinje stjecati popularnost, ali se već prilično često spominje na Hacker News-u u tematskim raspravama kao go-to alat za benchmarking. Uarch-bench omogućuje procjenu performansi memorije, brzinu paralelnog učitavanja podataka i rad s čišćenjem pominje YMM registara.

Uarch-bench omogućuje procjenu performansi memorije, brzine paralelnog učitavanja podataka i rada na čišćenju YMM registri. Kako izgledaju rezultati benchmarkinga koje generira program, možete pronaći u službenom repozitoriju na dnu stranice.

Valja napomenuti da uarch-bench, kao i temci, isključuje funkciju Intel Turbo Boost (koja automatski povećava taktnu frekvenciju procesora pod opterećenjem) kako bi rezultati testiranja bili konzistentni.

Projekt je još uvijek u ranoj fazi razvoja, pa uarch-bench nema detaljnu dokumentaciju i u njegovom radu se mogu pojaviti greške — na primjer, poznate su poteškoće s pokretanjem na Ryzen. Također podržani su samo benchmarkovi za x86 arhitekture. Autor obećava dodati više funkcionalnosti u budućnosti i poziva da se pridružite razvoju.

likwid

Ovo je skup alata za procjenu performansi Linux strojeva s Intel, AMD i ARMv8 procesorima. Stvoren je pod okriljem Saveznog ministarstva obrazovanja i istraživanja Njemačke 2017. godine i predan je u open source.

Među alatima likwid može se istaknuti likwid-powermeter, koji isporučuje informacije iz RAPL registara o potrošnji snage sustava, kao i likwid-setFrequencies — koji omogućuje kontrolu frekvencije procesora. Potpuni popis možete pronaći u repozitoriju.

Alat koriste inženjeri koji se bave istraživanjem u području HPC-a. Na primjer, s likwidom radi grupa stručnjaka iz Regionalnog računalnog centra Sveučilišta Erlangen — Nuremberg (RRZE) u Njemačkoj. Također aktivno sudjeluje u razvoju ovog skupa alata.

Benchmarkovi za poslužitelje na Linuxu: zbirka otvorenih alata
Fotografija – Clem Onojeghuo – Unsplash

perf-tools

Ovaj alat za analizu performansi Linux servera predstavio Brendan Gregg. On je jedan od razvijača DTrace — okvira dinamičkog praćenja za otklanjanje grešaka u aplikacijama u stvarnom vremenu.

U srcu perf-tools su podsustavi jezgre perf_events i ftrace. Njihove alatke omogućuju analizu latencije ulaza/izlaza (iosnoop), praćenje argumenata sistemskih poziva (unccount, funcslower, funcgraph i functrace) i prikupljanje statistike „pogađanja“ u datotečnom kešu (cachestat). U ovom slučaju, naredba izgleda ovako:

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

Oko alata se formirala prilično opsežna zajednica (gotovo 6 tisuća zvjezdica na GitHubu). I postoje tvrtke koje aktivno koriste perf-tools, na primjer Netflix. No alat se ažurira i modificira (iako su ažuriranja posljednjih nekoliko mjeseci prilično rijetka). Stoga se tijekom rada mogu pojaviti greške - autor piše da ponekad perf-tools uzrokuje kernel panic.

llvm-mca

Alat koji predviđa koliko će računalnih resursa biti potrebno strojnom kodu na različitim CPU-ima. On estimates Instructions Per Cycle (IPC) i opterećenje na hardveru koje generira određena aplikacija.

llvm-mca predstavljen je 2018. godine unutar projekta LLVM, koji se bavi razvojem univerzalnog sustava analize, transformacije i optimizacije programa. Poznato je da su autori llvm-mca bili inspirirani rješenjem za analizu performansi softvera IACA od Intela i nastojali su stvoriti njegovu alternativu. Prema riječima korisnika, izlazni podaci alata (njihov format i količina) doista podsjećaju na IACA - primjer možete pronaći ovdje. Međutim, llvm-mca prihvaća samo AT&T sintaksu, stoga će za rad s njim vjerojatno biti potrebno koristiti konvertere.

O čemu pišemo na našim blogovima i društvenim mrežama:

Benchmarkovi za poslužitelje na Linuxu: zbirka otvorenih alata „Mat. model s Wall Streeta“ ili kako optimizirati troškove u oblaku

Benchmarkovi za poslužitelje na Linuxu: zbirka otvorenih alata Kako osigurati Linux sustav: 10 savjeta
Benchmarkovi za poslužitelje na Linuxu: zbirka otvorenih alata Minimizacija rizika: kako ne izgubiti vaše podatke

Benchmarkovi za poslužitelje na Linuxu: zbirka otvorenih alata Knjige za one koji se već bave sistemskim administriranjem ili tek planiraju započeti
Benchmarkovi za poslužitelje na Linuxu: zbirka otvorenih alata Preporuka: pet knjiga i jedan tečaj o mrežama

Benchmarkovi za poslužitelje na Linuxu: zbirka otvorenih alataU 1cloud.ru nudimo besplatnu uslugu „DNS hosting“. Upravljanje DNS zapisima kod nas može se obaviti u jedinstvenoj korisničkoj ploči.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster