Benchmarks per i servitori Linux: una selezzione di strumenti aperti
Cuntinuemu à parlà di strumenti per valutà u rendiment di CPU nantu à e macchine Linux. Oghje in u materiale: temci, uarch-bench, likwid, perf-tools è llvm-mca.
Questu hè un strumentu per a stima di u tempu di esecuzione di dui prugrammi. Essenzialmente, vi permette di paragunà u tempu di esecuzione di duie applicazioni. L'autore di l'utilità era un studiente da Germania, Johannes Bechberger, chì hà sviluppatu cum'è parte di a so tesi di liceu in 2016. U strumentu d'oghje distribuitu da licenziatu sottu a Licenza Pubblica Generale GNU.
Johannes vulia creà un strumentu chì li permetterà di misurà u rendiment di un sistema di computing in un ambiente cuntrullatu. Per quessa, una di e caratteristiche principali di temci hè a capacità di stallà un ambiente di prova. Per esempiu, pò: cambia i paràmetri di u gestore di frequenza di CPU, disattiveghjanu iper threading è cache L1 è L2, disattivate u modalità turbo nantu à i prucessori Intel, etc. Per u benchmarking temci usa arnesi tempu, perf_stat и getrusage.
Eccu ciò chì l'utilità pare in u primu casu:
# 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
Basatu nantu à i risultati di benchmarking, u sistema genera rapportu convenientu cù diagrammi, tavule è grafici, chì distingue temci da suluzioni simili.
Trà i difetti di temci, spicca a so "gioventù". Per via di questu ellu micca tuttu hè sustinutu cunfigurazioni hardware è software. Per esempiu, hè difficiule di eseguisce in macOS, è alcune funzioni ùn sò micca dispunibili nantu à un sistema basatu in ARM. In u futuru, a situazione pò cambià, cum'è l'autore hè attivamente sviluppatu u prugettu, è u numeru di stelle in GitHub cresce gradualmente - micca tantu tempu temci ancu discussatu in i cumenti nantu à Hacker News.
Una utilità per a valutazione di e prestazioni di funzioni di CPU di pocu livellu, sviluppata da l'ingegnere Travis Downs (Travis Downs). Recentemente hà blogging A prestazione importa nantu à e Pagine GitHub, chì parla di strumenti di benchmarking è altre cose cunnesse. In generale, uarch-bench hè ghjustu cuminciatu à guadagnà pupularità, ma hè digià abbastanza cumuni mintuatu residenti di Hacker News in i fili tematichi cum'è un strumentu per andà per benchmarking.
Uarch-bench permette di valutà u rendiment di memoria, a velocità di carica di dati paralleli è u travagliu di pulizia I registri YMM. Ciò chì i risultati di benchmarking generati da u prugramma si ponu truvà in u repositoriu ufficiale à u fondu di a pagina.
Hè da nutà chì uarch-banch, cum'è temci, disconnects Funzione Intel Turbo Boost (aumenta automaticamente a velocità di u clock di u processore sottu carica) per chì i risultati di a prova sò coerenti.
Per avà, u prugettu hè in i primi fasi di sviluppu, cusì uarch-bench ùn hà micca documentazione dettagliata, è u so funziunamentu pò cuntene bugs - per esempiu, e difficultà sò cunnisciute cù u lanciu nantu à Ryzen. Inoltre, solu i benchmarks per l'architettura x86 sò supportati. L'autore prumette di aghjunghje più funziunalità in u futuru è vi invita à unisce à u sviluppu.
Questu hè un inseme di strumenti per evaluà u rendiment di e macchine Linux cù processori Intel, AMD è ARMv8. Hè statu creatu sottu l'auspici di u Ministeru Federale di l'Educazione è a Ricerca Tedesca in 2017 è liberatu in open source.
Trà l'arnesi likwid, pudemu mette in risaltu likwid-powermeter, chì mostra infurmazione da i registri RAPL nantu à a putenza cunsumata da u sistema, è ancu likwid-setFrequencies, chì permette di cuntrullà a freccia di u processatore. Pudete vede a lista cumpleta truvà in u repository.
U strumentu hè utilizatu da ingegneri implicati in a ricerca HPC. Per esempiu, cù likwid opere un gruppu di specialisti da u Centru di Computing Regionale di l'Università di Erlangen-Nuremberg (RRZE) in Germania. Idda pigghia dinù una parte attiva in u sviluppu di stu gruppu di arnesi.
Stu strumentu per analizà u rendiment di i servitori Linux introduttu Brendan Gregg. Hè unu di i sviluppatori DTrace - un framework di traccia dinamica per l'applicazioni di debugging in tempu reale.
perf-tools hè basatu annantu à i sottosistemi perf_events è ftrace kernel. E so utilità vi permettenu di analizà a latenza I / O (iosnoop), seguite l'argumenti di a chjama di u sistema (unccount, funcslower, funcgraph è functrace) è raccoglie statistiche nantu à "hits" in a cache di u schedariu (cachestat). In l'ultimu casu, u cumandimu pare cusì:
Una cumunità abbastanza numerosa s'hè furmatu intornu à l'instrumentu (quasi 6 mila stelle nantu à GitHub). E ci sò cumpagnie chì utilizanu attivamente perf-tools, per esempiu Netflix. Ma l'uttellu hè più sviluppatu è mudificatu (ancu se l'aghjurnamenti sò stati liberati pocu raramenti ultimamente). Per quessa, l'errore pò accade in u so funziunamentu - l'autore scrive chì qualchì volta perf-tools causa u panicu di u kernel.
Una utilità chì predice quante risorse di computer codice macchina richiederà in diverse CPU. Ella valuta Istruzzioni Per Ciclu (CPI) è a carica nantu à u hardware chì una applicazione particulare genera.
llvm-mca hè statu prisentatu in 2018 cum'è parte di u prugettu LLVM, chì sviluppa un sistema universale per analisi, trasfurmazioni è ottimisazione di prugrammi. Hè cunnisciutu chì l'autori di llvm-mca sò stati inspirati da una suluzione per analizà u funziunamentu di u software IACA da Intel è hà cercatu di creà una alternativa. E sicondu l'utilizatori, a pruduzzione di l'uttellu (u so layout è a quantità) s'assumiglia veramente IACA - esempiu pò esse trovu quì. Tuttavia, llvm-mca accetta solu sintassi AT&T, cusì vi sarà più prubabile à aduprà converters à travaglià cun ellu.
Ciò chì scrivemu nantu à i nostri blog è e rete suciale: