Benchmarks för Linux-servrar: ett urval av öppna verktyg

Vi fortsätter att prata om verktyg för att bedöma CPU-prestanda på Linux-maskiner. Idag i materialet: temci, uarch-bench, likwid, perf-tools och llvm-mca.

Fler riktmärken:

Benchmarks för Linux-servrar: ett urval av öppna verktyg
Фото - Lukas Blazek — unsplash

temci

Detta är ett verktyg för att uppskatta exekveringstiden för två program. I huvudsak låter det dig jämföra körtiden för två applikationer. Författaren till verktyget var en student från Tyskland, Johannes Bechberger, som utvecklade det som en del av sin grundexamen 2016. Idag är ett verktyg levererad av licensierad under GNU General Public License.

Johannes ville skapa ett verktyg som skulle göra det möjligt för honom att mäta prestandan hos ett datorsystem i en kontrollerad miljö. Därför är en av huvuddragen hos temci möjligheten att sätta upp en testmiljö. Till exempel, kan man: ändra CPU-frekvenshanterarens inställningar, inaktivera Hyper Threading och L1- och L2-cacher, stäng av turboläget på Intel-processorer etc. För benchmarking använder temci verktyg tid, perf_stat и getrusage.

Så här ser verktyget 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å benchmarkingresultaten genererar systemet bekväm rapport med diagram, tabeller och grafer, vilket skiljer temci från liknande lösningar.

Bland bristerna med temci sticker dess "ungdom" ut. På grund av detta han allt stöds inte hårdvaru- och mjukvarukonfigurationer. Det är till exempel svårt att köra på macOS, och vissa funktioner är inte tillgängliga på ett ARM-baserat system. I framtiden kan situationen förändras, eftersom författaren aktivt utvecklar projektet, och antalet stjärnor på GitHub ökar gradvis - för inte så länge sedan temci ens diskuteras i kommentarerna på Hacker News.

uarch-bänk

Ett verktyg för att utvärdera prestandan hos lågnivå-CPU-funktioner, utvecklat av ingenjören Travis Downs (Travis Downs). Den senaste tiden har han bloggat Prestanda är viktigt på GitHub Pages, som talar om benchmarkingverktyg och andra relaterade saker. I allmänhet har uarch-bench precis börjat bli populär, men det är redan ganska vanligt nämnts invånare i Hacker News i tematiska trådar som ett go-to-verktyg för benchmarking.

Uarch-bench låter dig utvärdera minnesprestanda, parallell dataladdningshastighet och rengöringsarbete YMM registrerar. Hur benchmarkingresultaten som genereras av programmet ser ut kan hittas i det officiella arkivet på botten av sidan.

Det är värt att notera att uarch-bänk, som temci, inaktiverar Intel Turbo Boost-funktion (den ökar automatiskt processorns klockhastighet under belastning) så att testresultaten är konsekventa.

För närvarande är projektet i ett tidigt utvecklingsstadium, så uarch-bench har ingen detaljerad dokumentation, och dess drift kan innehålla buggar - till exempel, svårigheter är kända med lansering på Ryzen. Dessutom stöds endast riktmärken för x86-arkitekturer. Författaren lovar att lägga till mer funktionalitet i framtiden och inbjuder dig att vara med i utvecklingen.

flytande

Detta är en uppsättning verktyg för att utvärdera prestandan hos Linux-maskiner med Intel-, AMD- och ARMv8-processorer. Det skapades under överinseende av det tyska förbundsministeriet för utbildning och forskning 2017 och släpptes som öppen källkod.

Bland likwid-verktygen kan vi lyfta fram likwid-powermeter, som visar information från RAPL-register om ström som förbrukas av systemet, samt likwid-setFrequency, som låter dig styra processorfrekvensen. Du kan se hela listan hitta i förvaret.

Verktyget används av ingenjörer som är involverade i HPC-forskning. Till exempel med likwid arbetar en grupp specialister från Regional Computing Center vid universitetet i Erlangen-Nürnberg (RRZE) i Tyskland. Hon deltar också aktivt i utvecklingen av denna uppsättning verktyg.

Benchmarks för Linux-servrar: ett urval av öppna verktyg
Фото - Clem Onojeghuo — unsplash

perfekta verktyg

Detta verktyg för att analysera prestanda för Linux-servrar lämnats Brendan Gregg. Han är en av utvecklarna DTrace — Ett dynamiskt spårningsramverk för felsökning av applikationer i realtid.

perf-tools är baserat på perf_events och ftrace kärndelsystem. Deras verktyg låter dig analysera I/O-latens (iosnoop), spåra systemanropsargument (unccount, funclower, funcgraph och functrace) och samla in 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

En ganska stor gemenskap har bildats runt instrumentet (nästan 6 tusen stjärnor på GitHub). Och det finns företag som aktivt använder till exempel perf-tools Netflix. Men verktyget utvecklas och modifieras vidare (även om uppdateringar har släppts ganska sällan på sistone). Därför kan fel uppstå i dess funktion - författaren skriver att perf-tools ibland orsakar kärnpanik.

llvm-mca

Ett verktyg som förutsäger hur många datorresurser maskinkod kommer att kräva på olika processorer. Hon utvärderar Instruktioner per cykel (IPC) och belastningen på hårdvaran som en viss applikation genererar.

llvm-mca presenterades 2018 som en del av projektet LLVM, som utvecklar ett universellt system för analys, transformation och optimering av program. Det är känt att författarna till llvm-mca inspirerades av en lösning för att analysera mjukvarans prestanda IACA från Intel och försökte skapa ett alternativ. Och enligt användarna påminner verktygets produktion (deras layout och kvantitet) verkligen om IACA - exempel finns här. Men llvm-mca accepterar endast AT&T-syntax, så du kommer troligen att behöva använda omvandlare för att arbeta med det.

Vad vi skriver om på våra bloggar och sociala nätverk:

Benchmarks för Linux-servrar: ett urval av öppna verktyg "Matta. Wall Street-modellen" eller hur man optimerar molnkostnaderna

Benchmarks för Linux-servrar: ett urval av öppna verktyg Så här säkrar du ditt Linux-system: 10 tips
Benchmarks för Linux-servrar: ett urval av öppna verktyg Riskminimering: hur man inte förlorar din data

Benchmarks för Linux-servrar: ett urval av öppna verktyg Böcker för dig som redan är involverad i systemadministration eller precis planerar att börja
Benchmarks för Linux-servrar: ett urval av öppna verktyg Urval: fem böcker och en kurs om nätverk

Benchmarks för Linux-servrar: ett urval av öppna verktygVi på 1cloud.ru erbjuder en gratis tjänst "DNS-värd" Du kan hantera DNS-poster på ett enda personligt konto.

Källa: will.com

Lägg en kommentar