Benchmarking för servrar pÄ Linux: en samling av öppna verktyg

Vi fortsÀtter att berÀtta om verktyg för att utvÀrdera CPU-prestanda pÄ Linux-maskiner. Dagens artikel handlar om: temci, uarch-bench, likwid, perf-tools och llvm-mca.

Fler benchmarkar:

Benchmarking för servrar pÄ Linux: en samling av öppna verktyg
Foto — Lukas Blazek — Unsplash

temci

Detta Àr ett verktyg för att mÀta körningstiden för tvÄ program. I grund och botten tillÄter det att jÀmföra exekveringstiderna för tvÄ applikationer. Verktyget skapades av studenten Johannes Bechberger frÄn Tyskland, som utvecklade det som en del av sitt kandidatarbete Är 2016. Idag Àr verktyget sprids under GNU General Public License.

Johannes ville skapa ett verktyg som gör det möjligt att mÀta prestandan hos datorsystem i en kontrollerad miljö. DÀrför Àr en av de viktigaste funktionerna i temci möjlighet att konfigurera testmiljön. Till exempel kan: Àndra instÀllningarna för CPU-frekvenshanteraren, stÀnga av hyper-threading och L1- och L2-cache, stÀnga av turbo-lÀget pÄ Intel-processorer, och sÄ vidare. För benchmarking anvÀnder temci verktyg time, perf_stat och getrusage.

SÄ hÀr ser verktygets arbete ut i det första fallet:

# 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

Baserat pÄ resultaten frÄn benchmarkingen skapar systemet en anvÀndarvÀnlig rapport med diagram, tabeller och grafer, vilket skiljer temci frÄn liknande lösningar.

Bland bristerna hos temci kan nĂ€mnas dess "ungdomlighet". PĂ„ grund av detta stöder den inte alla konfigurationer av hĂ„rdvaru- och mjukvarusystem. Till exempel Ă€r det svĂ„rt att köra den pĂ„ macOS, och vissa funktioner Ă€r inte tillgĂ€ngliga pĂ„ system med ARM-processorer. Situationen kan förĂ€ndras i framtiden, eftersom forfattaren aktivt utvecklar projektet, och antalet stjĂ€rnor pĂ„ GitHub ökar stadigt — nyligen nĂ€mndes temci till och med i kommentarerna pĂ„ Hacker News.

uarch-bench

Ett verktyg för att utvÀrdera prestandan hos lÄgnivÄfunktioner i CPU, utvecklat av ingenjör Travis Downs (Travis Downs). Han driver nyligen sin blogg Performance Matters pÄ GitHub Pages, dÀr han pratar om verktyg för benchmarking och andra relaterade Àmnen. Generellt sett börjar uarch-bench sÄ smÄtt fÄ popularitet, men den nÀmns redan ganska ofta av medlemmar pÄ Hacker News i tematiska trÄdar som ett go-to verktyg för benchmarking. Uarch-bench gör det möjligt att utvÀrdera minnesprestanda, hastigheten pÄ parallell dataladdning och rensningsarbetet av

YMM-register YMM-register. Hur resultaten frÄn benchmarkingen, som genereras av programmet, ser ut kan hittas i det officiella arkivet lÀngst ner pÄ sidan.

Det Àr vÀrt att notera att uarch-bench, precis som temci, stÀnger av Intel Turbo Boost-funktionen (som automatiskt ökar klockfrekvensen pÄ processorn under belastning) för att resultaten ska vara konsekventa.

Projektet Àr fortfarande i ett tidigt utvecklingsstadium, sÄ uarch-bench har ingen detaljerad dokumentation och det kan förekomma buggar i dess funktion, till exempel det Àr kÀnt att det finns problem med att köra pÄ Ryzen. Endast benchmarkar för x86-arkitekturer stöds. Författaren lovar att lÀgga till mer funktionalitet i framtiden och bjuder in till att delta i utvecklingen.

likwid

Detta Àr ett verktygsset för att bedöma prestandan hos Linux-maskiner med Intel-, AMD- och ARMv8-processorer. Det skapades under ledning av det tyska federala ministeriet för utbildning och forskning 2017 och har överförts till open source.

Bland verktygen i likwid kan nĂ€mnas likwid-powermeter, som visar information frĂ„n RAPL-register om systemets effektförbrukning, samt likwid-setFrequencies – som tillĂ„ter att kontrollera processorers frekvens. Du kan hitta en fullstĂ€ndig lista i arkivet.

Verktyget anvĂ€nds av ingenjörer som arbetar med forskning inom HPC. Till exempel med likwid pĂ„ att implementera protokollet ActivityPub. en grupp specialister frĂ„n regionens berĂ€kningscenter vid universitetet i Erlangen–Nuremberg (RRZE) i Tyskland. De deltar ocksĂ„ aktivt i utvecklingen av detta verktygsset.

Benchmarking för servrar pÄ Linux: en samling av öppna verktyg
Foto — Clem Onojeghuo — Unsplash

perf-tools

Detta verktyg för prestandaanalys av Linux-servrar Ă„r Brendan Gregg. Han Ă€r en av utvecklarna DTrace – ett ramverk för dynamisk spĂ„rning för felsökning av applikationer i realtid.

Perf-tools bygger pÄ kÀrnsystemen perf_events och ftrace. Deras verktygsutnyttjande gör det möjligt att analysera in- och utdatafördröjningar (iosnoop), spÄra argument för systemanrop (unccount, funcslower, funcgraph och functrace) och samla statistik om "trÀffar" i filcachen (cachestat). I det senare fallet ser kommandot ut sÄ hÀr:

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

Runt verktyget har det bildats en ganska stor gemenskap (nÀstan 6 000 stjÀrnor pÄ GitHub). Och det finns företag som aktivt anvÀnder perf-tools, till exempel Netflix. Men verktyget utvecklas och modifieras (Àven om uppdateringar har slÀppts ganska sÀllan pÄ sistone). DÀrför kan det förekomma fel i dess arbete - författaren skriver att perf-tools ibland orsakar kernel panic.

llvm-mca

Ett verktyg som förutspÄr hur mycket berÀkningsresurser som maskinkod kommer att behöva pÄ olika CPU:er. Det vÀrderar Instructions Per Cycle (IPC) och belastningen pÄ hÄrdvaran som olika program genererar.

llvm-mca presenterades 2018 inom ramen för projektet LLVM, som arbetar med utvecklingen av ett universellt system för analys, transformation och optimering av program. Det Àr kÀnt att författarna till llvm-mca inspirerades av Intels lösning för programvaruanalys IACA frÄn Intel och strÀvar efter att skapa ett alternativ. Och enligt anvÀndarna pÄminner verktygets utdata (deras layout och antal) verkligen om IACA - ett exempel kan du hitta hÀr. Men llvm-mca accepterar endast AT&T-syntax, sÄ för att arbeta med det kommer man troligtvis behöva anvÀnda konverterare.

Vad vi skriver om i vÄra bloggar och pÄ sociala medier:

Benchmarking för servrar pÄ Linux: en samling av öppna verktyg »Mat. modell med Wall Street» eller hur man optimerar kostnader för molnet

Benchmarking för servrar pÄ Linux: en samling av öppna verktyg Hur man sÀkrar Linux-system: 10 tips
Benchmarking för servrar pÄ Linux: en samling av öppna verktyg Minimering av risker: hur man inte förlorar sina data

Benchmarking för servrar pÄ Linux: en samling av öppna verktyg Böcker för dem som redan arbetar med systemadministration eller bara planerar att börja
Benchmarking för servrar pÄ Linux: en samling av öppna verktyg Urval: fem böcker och en kurs om nÀtverk

Benchmarking för servrar pÄ Linux: en samling av öppna verktygVi pÄ 1cloud.ru erbjuder en gratis tjÀnst «DNS-hosting». Hantera DNS-poster hos oss i en enhetlig kundportal.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster