Merila za servere na Linuxu: izbor alata otvorenog koda
Nastavljamo da pričamo o alatima za procenu performansi procesora na Linux mašinama. Danas u materijalu: temci, uarch-bench, likwid, perf-tools i llvm-mca.
Ovo je alat za procjenu vremena izvršavanja dva programa. U suštini, omogućava vam da uporedite vreme izvršenja dve aplikacije. Autor uslužnog programa bio je student iz Njemačke, Johannes Bechberger, koji ga je razvio kao dio svog dodiplomskog rada 2016. godine. Današnji alat distribuira licencirano pod GNU Općom javnom licencom.
Johannes je želeo da stvori alat koji bi mu omogućio da meri performanse računarskog sistema u kontrolisanom okruženju. Stoga je jedna od glavnih karakteristika temci-ja mogućnost postavljanja testnog okruženja. Na primjer, moći: promijenite postavke CPU frekvencije, onemogućite hyper threading i L1 i L2 keš memorije, isključi turbo način rada na Intel procesorima, itd. Za benchmarking temci koristi alate vrijeme, perf_stat и getrusage.
Ovako izgleda uslužni program 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 osnovu rezultata benčmarkinga, sistem generiše zgodan izveštaj sa dijagramima, tabelama i grafikonima, po čemu se temci razlikuju od sličnih rješenja.
Među nedostacima temčija ističe se njegova "mladost". Zbog ovoga on nije sve podržano hardverske i softverske konfiguracije. Na primjer, teško ga je pokrenuti na macOS-u, a neke funkcije nisu dostupne na sistemu zasnovanom na ARM-u. U budućnosti se situacija može promijeniti, jer autor aktivno razvija projekat, a broj zvijezda na GitHubu se postepeno povećava - ne tako davno temci čak diskutovano u komentarima na Hacker News.
Uslužni program za procjenu performansi niskog nivoa CPU funkcija, koji je razvio inženjer Travis Downs (Travis Downs). Nedavno je blogirao Performanse su važne na GitHub stranicama, koji govori o alatima za benchmarking i drugim srodnim stvarima. Općenito, uarch-klupa tek počinje dobivati popularnost, ali već prilično često spomenuto stanovnici Hacker News-a u tematskim nitima kao alat za benčmarking.
Uarch-bench vam omogućava da procenite performanse memorije, brzinu paralelnog učitavanja podataka i rad čišćenja YMM registri. Kako izgledaju rezultati benchmarkinga koje je generirao program možete pronaći u zvaničnom repozitoriju na dnu stranice.
Vrijedi napomenuti da uarch-klupa, poput temci, prekida veze Intel Turbo Boost funkcija (automatski povećava brzinu procesora pod opterećenjem) tako da rezultati testa budu konzistentni.
Za sada je projekat u ranoj fazi razvoja, tako da uarch-bench nema detaljnu dokumentaciju, a njegov rad može sadržavati greške - npr. poteškoće su poznate sa lansiranjem na Ryzenu. Takođe, podržani su samo benchmarkovi za x86 arhitekture. Autor obećava da će dodati još funkcionalnosti u budućnosti i poziva vas da se pridružite razvoju.
Ovo je skup alata za procenu performansi Linux mašina sa Intel, AMD i ARMv8 procesorima. Napravljen je pod pokroviteljstvom njemačkog saveznog ministarstva obrazovanja i istraživanja 2017. godine i pušten u otvoreni kod.
Među likwid alatima možemo izdvojiti likwid-powermeter, koji prikazuje informacije iz RAPL registara o snazi koju sistem troši, kao i likwid-setFrequencies, koji vam omogućava kontrolu frekvencije procesora. Možete vidjeti kompletnu listu pronaći u spremištu.
Alat koriste inženjeri uključeni u HPC istraživanja. Na primjer, sa likwidom radovi grupa stručnjaka iz Regionalnog računarskog centra Univerziteta Erlangen-Nürnberg (RRZE) u Njemačkoj. Ona također aktivno učestvuje u razvoju ovog skupa alata.
Ovaj alat za analizu performansi Linux servera uveo Brendan Gregg. On je jedan od programera DTrace — dinamički okvir za praćenje za otklanjanje grešaka u aplikacijama u realnom vremenu.
perf-tools je baziran na podsistemima perf_events i ftrace kernela. Njihovi uslužni programi vam omogućavaju da analizirate kašnjenje I/O (iosnoop), pratite argumente sistemskog poziva (unccount, funcslower, funcgraph i functrace) i prikupljate statistiku o „pogocima“ u kešu datoteka (cachestat). U potonjem slučaju, naredba izgleda ovako:
Oko instrumenta se formirala prilično velika zajednica (skoro 6 hiljada zvjezdica na GitHubu). A postoje kompanije koje aktivno koriste perf-alate, na primjer Netflix. Ali alat se dalje razvija i modifikuje (iako su ažuriranja u posljednje vrijeme izdavana prilično rijetko). Stoga se mogu pojaviti greške u njegovom radu - autor piše da perf-tools ponekad izaziva paniku kernela.
Uslužni program koji predviđa koliko će računarskih resursa biti potrebno mašinskom kodu na različitim CPU-ima. Ona ocjenjuje Upute po ciklusu (IPC) i opterećenje na hardveru koje generiše određena aplikacija.
llvm-mca je predstavljen 2018. godine kao dio projekta LLVM, koja razvija univerzalni sistem za analizu, transformaciju i optimizaciju programa. Poznato je da su autori llvm-mca bili inspirisani rešenjem za analizu performansi softvera IACA iz Intela i nastojao da stvori alternativu. A prema korisnicima, izlaz alata (njihov izgled i količina) zaista podsjeća na IACA - primjer možete pronaći ovdje. Međutim, llvm-mca samo prihvata AT&T sintaksa, tako da ćete najvjerovatnije morati koristiti pretvarače za rad s njim.
O čemu pišemo na našim blogovima i društvenim mrežama: