ProHoster > Blog > Uprava > Merila uspešnosti za strežnike Linux: izbor odprtih orodij
Merila uspešnosti za strežnike Linux: izbor odprtih orodij
Še naprej govorimo o orodjih za ocenjevanje zmogljivosti procesorja na strojih Linux. Danes v gradivu: temci, uarch-bench, likwid, perf-tools in llvm-mca.
To je orodje za ocenjevanje časa izvajanja dveh programov. V bistvu vam omogoča primerjavo časa izvajanja dveh aplikacij. Avtor pripomočka je bil študent iz Nemčije Johannes Bechberger, ki ga je leta 2016 razvil kot del svoje dodiplomske naloge. Današnje orodje distributer licenciran pod splošno javno licenco GNU.
Johannes je želel ustvariti orodje, ki bi mu omogočilo merjenje zmogljivosti računalniškega sistema v nadzorovanem okolju. Zato je ena od glavnih značilnosti temci zmožnost nastavitve testnega okolja. na primer eno lahko: spremeni nastavitve upravljalnika frekvence procesorja, onemogoči hiper-nitnost ter predpomnilnike L1 in L2, izklopite turbo način na procesorjih Intel itd. Za primerjalno analizo temci uporablja orodja čas, perf_stat и getrusage.
Tako izgleda pripomoček v prvem primeru:
# 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 podlagi rezultatov primerjalne analize sistem ustvari priročno poročilo z diagrami, tabelami in grafi, kar razlikuje temci od podobnih rešitev.
Med pomanjkljivostmi temci izstopa njegova "mladost". Zaradi tega on ni vse podprto konfiguracije strojne in programske opreme. Na primer, težko ga je izvajati v sistemu macOS in nekatere funkcije niso na voljo v sistemu, ki temelji na ARM. V prihodnosti se lahko situacija spremeni, saj avtor aktivno razvija projekt, število zvezdic na GitHubu pa postopoma narašča - ne tako dolgo nazaj temci celo razpravljali v komentarjih na Hacker News.
Pripomoček za ocenjevanje zmogljivosti nizkonivojskih funkcij CPU, ki ga je razvil inženir Travis Downs (Travis Downs). Nedavno piše blog Zadeve glede uspešnosti na GitHub Pages, ki govori o orodjih za primerjalno analizo in drugih povezanih stvareh. Na splošno uarch-bench šele začenja pridobivati priljubljenost, vendar je že precej pogost omenjeno prebivalci Hacker News v tematskih nitih kot orodje za primerjalno analizo.
Uarch-bench vam omogoča, da ocenite zmogljivost pomnilnika, hitrost vzporednega nalaganja podatkov in čiščenje registri YMM. Kako izgledajo rezultati primerjalne analize, ki jih ustvari program, lahko najdete v uradnem repozitoriju na dnu strani.
Omeniti velja, da uarch-klop, tako kot temci, onemogoči Funkcija Intel Turbo Boost (samodejno poveča takt procesorja pod obremenitvijo), tako da so rezultati testa skladni.
Za zdaj je projekt v zgodnji fazi razvoja, zato uarch-bench nima podrobne dokumentacije, njegovo delovanje pa lahko vsebuje hrošče - npr. težave se poznajo z lansiranjem na Ryzen. Poleg tega so podprta samo merila uspešnosti za arhitekture x86. Avtor obljublja, da bo v prihodnosti dodal več funkcionalnosti in vas vabi, da se pridružite razvoju.
To je nabor orodij za ocenjevanje zmogljivosti naprav Linux s procesorji Intel, AMD in ARMv8. Nastala je pod okriljem nemškega zveznega ministrstva za izobraževanje in raziskave leta 2017 in objavljena v odprtokodni obliki.
Med orodji likwid lahko izpostavimo likwid-powermeter, ki prikazuje informacije iz registrov RAPL o porabi energije sistema, kot tudi likwid-setFrequencies, ki vam omogoča nadzor frekvence procesorja. Celoten seznam si lahko ogledate poiščite v skladišču.
Orodje uporabljajo inženirji, ki se ukvarjajo z raziskavami HPC. Na primer z likwidom Dela skupina strokovnjakov iz Regionalnega računalniškega centra Univerze Erlangen-Nürnberg (RRZE) v Nemčiji. Aktivno sodeluje tudi pri razvoju tega nabora orodij.
To orodje za analizo zmogljivosti strežnikov Linux uveden Brendan Gregg. Je eden od razvijalcev DTrace — ogrodje dinamičnega sledenja za odpravljanje napak v aplikacijah v realnem času.
perf-tools temelji na podsistemih jedra perf_events in ftrace. Njihovi pripomočki vam omogočajo analizo V/I zakasnitve (iosnoop), sledenje argumentom sistemskega klica (unccount, funcslower, funcgraph in functrace) in zbiranje statističnih podatkov o "zadetkih" v predpomnilniku datotek (cachestat). V slednjem primeru je ukaz videti takole:
Okoli inštrumenta se je oblikovala precej velika skupnost (skoraj 6 tisoč zvezdic na GitHubu). In obstajajo podjetja, ki na primer aktivno uporabljajo perf-orodja Netflix. Toda orodje se še naprej razvija in spreminja (čeprav so bile posodobitve v zadnjem času izdane zelo redko). Zato lahko pride do napak pri njegovem delovanju - avtor piše, da včasih perf-tools povzroči paniko jedra.
Pripomoček, ki predvidi, koliko računalniških virov bo zahtevala strojna koda na različnih procesorjih. Ona ocenjuje Navodila na cikel (IPC) in obremenitev strojne opreme, ki jo ustvari določena aplikacija.
llvm-mca je bil predstavljen leta 2018 v okviru projekta LLVM, ki razvija univerzalni sistem za analizo, transformacijo in optimizacijo programov. Znano je, da je avtorje llvm-mca navdihnila rešitev za analizo zmogljivosti programske opreme. IACA podjetja Intel in skušal ustvariti alternativo. Po mnenju uporabnikov je rezultat orodja (njihova postavitev in količina) res podoben IACA – primer najdete tukaj. Vendar llvm-mca sprejema samo sintaksa AT&T, zato boste najverjetneje morali uporabiti pretvornike za delo z njim.
O čem pišemo na naših blogih in družbenih omrežjih: