Referanse for Linux-servere: et utvalg åpne verktøy

Vi fortsetter å snakke om verktøy for å vurdere CPU-ytelse på Linux-maskiner. I dag i materialet: temci, uarch-bench, likwid, perf-tools og llvm-mca.

Flere benchmarks:

Referanse for Linux-servere: et utvalg åpne verktøy
Bilder - Lukas Blazek — unsplash

temci

Dette er et verktøy for å estimere utførelsestiden for to programmer. I hovedsak lar den deg sammenligne utførelsestiden for to applikasjoner. Forfatteren av verktøyet var en student fra Tyskland, Johannes Bechberger, som utviklet det som en del av sin bacheloroppgave i 2016. Dagens verktøy distribuert av lisensiert under GNU General Public License.

Johannes ønsket å lage et verktøy som ville tillate ham å måle ytelsen til et datasystem i et kontrollert miljø. Derfor er en av hovedtrekkene til temci muligheten til å sette opp et testmiljø. For eksempel, man kan: endre CPU-frekvensbehandlingsinnstillinger, deaktiver hyper-tråding og L1- og L2-cacher, slå av turbomodus på Intel-prosessorer osv. For benchmarking bruker temci verktøy tid, perf_stat и getrusage.

Slik ser verktøyet ut i det første tilfellet:

# 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

Basert på benchmarking-resultatene genererer systemet praktisk rapport med diagrammer, tabeller og grafer, som skiller temci fra lignende løsninger.

Blant manglene til temci skiller dens "ungdom" seg ut. På grunn av dette han ikke alt støttes maskinvare- og programvarekonfigurasjoner. For eksempel er det vanskelig å kjøre på macOS, og noen funksjoner er ikke tilgjengelige på et ARM-basert system. I fremtiden kan situasjonen endre seg, siden forfatteren aktivt utvikler prosjektet, og antallet stjerner på GitHub øker gradvis - for ikke så lenge siden temci selv diskutert i kommentarene på Hacker News.

uarch-benk

Et verktøy for å evaluere ytelsen til CPU-funksjoner på lavt nivå, utviklet av ingeniør Travis Downs (Travis Downs). I det siste har han blogget Ytelse betyr noe på GitHub-sider, som snakker om benchmarking-verktøy og andre relaterte ting. Generelt begynner uarch-benk akkurat å bli populær, men det er allerede ganske vanlig nevnt innbyggere i Hacker News i tematiske tråder som et go-to-verktøy for benchmarking.

Uarch-benk lar deg evaluere minneytelse, parallell datainnlastingshastighet og rengjøringsarbeid YMM registrerer. Hvordan benchmarking-resultatene generert av programmet ser ut kan bli funnet i det offisielle depotet nederst på siden.

Det er verdt å merke seg at uarch-benk, som temci, deaktiverer Intel Turbo Boost-funksjon (den øker automatisk prosessorens klokkehastighet under belastning) slik at testresultatene er konsistente.

Foreløpig er prosjektet i de tidlige utviklingsstadiene, så uarch-bench har ikke detaljert dokumentasjon, og driften kan inneholde feil - for eksempel, vanskeligheter er kjent med lansering på Ryzen. Dessuten støttes kun benchmarks for x86-arkitekturer. Forfatteren lover å legge til mer funksjonalitet i fremtiden og inviterer deg til å bli med i utviklingen.

væske

Dette er et sett med verktøy for å evaluere ytelsen til Linux-maskiner med Intel-, AMD- og ARMv8-prosessorer. Den ble opprettet i regi av det tyske forbundsdepartementet for utdanning og forskning i 2017 og utgitt som åpen kildekode.

Blant likwid-verktøyene kan vi fremheve likwid-powermeter, som viser informasjon fra RAPL-registre om strømmen som forbrukes av systemet, samt likwid-setFrequency, som lar deg kontrollere prosessorfrekvensen. Du kan se hele listen finner i depotet.

Verktøyet brukes av ingeniører involvert i HPC-forskning. For eksempel med likwid verker en gruppe spesialister fra det regionale datasenteret ved Universitetet i Erlangen-Nürnberg (RRZE) i Tyskland. Hun tar også aktivt del i utviklingen av dette settet med verktøy.

Referanse for Linux-servere: et utvalg åpne verktøy
Bilder - Clem Onojeghuo — unsplash

perf-verktøy

Dette verktøyet for å analysere ytelsen til Linux-servere innsendt Brendan Gregg. Han er en av utviklerne DTrace — et dynamisk sporingsrammeverk for feilsøking av applikasjoner i sanntid.

perf-tools er basert på perf_events og ftrace kjernedelsystemer. Verktøyene deres lar deg analysere I/O-latens (iosnoop), spore systemanropsargumenter (unccount, funclower, funcgraph og functrace) og samle statistikk om "treff" i filbufferen (cachestat). I sistnevnte tilfelle ser kommandoen slik ut:

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

Et ganske stort fellesskap har dannet seg rundt instrumentet (nesten 6 tusen stjerner på GitHub). Og det finnes selskaper som aktivt bruker perf-tools, for eksempel Netflix. Men verktøyet blir videreutviklet og modifisert (selv om oppdateringer har blitt utgitt ganske sjelden i det siste). Derfor kan det oppstå feil i driften - forfatteren skriver at noen ganger perf-tools forårsaker kjernepanikk.

llvm-mca

Et verktøy som forutsier hvor mange dataressurser maskinkode vil kreve på forskjellige CPUer. Hun vurderer Instruksjoner per syklus (IPC) og belastningen på maskinvaren som en bestemt applikasjon genererer.

llvm-mca ble presentert i 2018 som en del av prosjektet LLVM, som utvikler et universelt system for analyse, transformasjon og optimalisering av programmer. Det er kjent at forfatterne av llvm-mca ble inspirert av en løsning for å analysere programvareytelse IACA fra Intel og forsøkte å skape et alternativ. Og ifølge brukerne ligner verktøyets produksjon (deres layout og mengde) virkelig IACA - eksempel finner du her. Imidlertid godtar llvm-mca bare AT&T-syntaks, så du må mest sannsynlig bruke omformere for å jobbe med den.

Hva vi skriver om på bloggene våre og sosiale nettverk:

Referanse for Linux-servere: et utvalg åpne verktøy "Matte. Wall Street-modellen" eller hvordan du kan optimalisere skykostnadene

Referanse for Linux-servere: et utvalg åpne verktøy Slik sikrer du Linux-systemet ditt: 10 tips
Referanse for Linux-servere: et utvalg åpne verktøy Minimer risiko: hvordan ikke miste dataene dine

Referanse for Linux-servere: et utvalg åpne verktøy Bøker for de som allerede er involvert i systemadministrasjon eller bare planlegger å begynne
Referanse for Linux-servere: et utvalg åpne verktøy Utvalg: fem bøker og ett kurs om nettverk

Referanse for Linux-servere: et utvalg åpne verktøyVi på 1cloud.ru tilbyr en gratis tjeneste "DNS-hosting" Du kan administrere DNS-poster i én enkelt personlig konto.

Kilde: www.habr.com

Legg til en kommentar