Benchmarks for Linux-servere: et udvalg af åbne værktøjer

Vi fortsætter med at tale om værktøjer til vurdering af CPU-ydeevne på Linux-maskiner. I dag i materialet: temci, uarch-bench, likwid, perf-tools og llvm-mca.

Flere benchmarks:

Benchmarks for Linux-servere: et udvalg af åbne værktøjer
Ф billeder - Lukas Blazek — Unsplash

temci

Dette er et værktøj til at estimere udførelsestiden for to programmer. I det væsentlige giver det dig mulighed for at sammenligne eksekveringstiden for to applikationer. Forfatteren til værktøjet var en studerende fra Tyskland, Johannes Bechberger, som udviklede det som en del af sin bachelorafhandling i 2016. Dagens værktøj distribueret af licenseret under GNU General Public License.

Johannes ønskede at skabe et værktøj, der ville give ham mulighed for at måle ydelsen af ​​et computersystem i et kontrolleret miljø. Derfor er en af ​​hovedfunktionerne ved temci muligheden for at opsætte et testmiljø. For eksempel, man kan: ændre CPU-frekvensstyringsindstillinger, deaktiver hyper-trådning og L1- og L2-cache, slå turbotilstand fra på Intel-processorer osv. Til benchmarking bruger temci værktøjer tid, perf_stat и getrusage.

Sådan ser værktøjet ud i det første tilfælde:

# 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

Baseret på benchmarking-resultaterne genererer systemet praktisk rapport med diagrammer, tabeller og grafer, som adskiller temci fra lignende løsninger.

Blandt manglerne ved temci skiller dens "ungdom" sig ud. På grund af dette han ikke alt er understøttet hardware- og softwarekonfigurationer. For eksempel er det svært at køre på macOS, og nogle funktioner er ikke tilgængelige på et ARM-baseret system. I fremtiden kan situationen ændre sig, da forfatteren aktivt udvikler projektet, og antallet af stjerner på GitHub stiger gradvist - for ikke så længe siden temci endda diskuteret i kommentarerne på Hacker News.

uarch-bænk

Et værktøj til at evaluere ydeevnen af ​​CPU-funktioner på lavt niveau, udviklet af ingeniør Travis Downs (Travis Downs). For nylig har han blogget Ydeevne betyder noget på GitHub Pages, som taler om benchmarking-værktøjer og andre relaterede ting. Generelt er uarch-bench lige begyndt at vinde popularitet, men det er allerede ret almindeligt nævnt beboere i Hacker News i tematiske tråde som et go-to-værktøj til benchmarking.

Uarch-bench giver dig mulighed for at evaluere hukommelsesydelse, parallel dataindlæsningshastighed og rengøringsarbejde YMM registrerer. Hvordan benchmarking-resultaterne genereret af programmet ser ud, kan findes i det officielle depot nederst på siden.

Det er værd at bemærke, at uarch-bænk, som temci, deaktiverer Intel Turbo Boost-funktion (den øger automatisk processorens clock-hastighed under belastning), så testresultaterne er ensartede.

For nu er projektet i de tidlige udviklingsstadier, så uarch-bench har ikke detaljeret dokumentation, og dets drift kan indeholde fejl - f.eks. vanskeligheder er kendt med lancering på Ryzen. Desuden understøttes kun benchmarks for x86-arkitekturer. Forfatteren lover at tilføje mere funktionalitet i fremtiden og inviterer dig til at deltage i udviklingen.

væske

Dette er et sæt værktøjer til evaluering af ydeevnen af ​​Linux-maskiner med Intel-, AMD- og ARMv8-processorer. Den blev oprettet i regi af det tyske forbundsministerium for uddannelse og forskning i 2017 og udgivet som open source.

Blandt likwid-værktøjerne kan vi fremhæve likwid-powermeter, som viser information fra RAPL-registre om den strøm, der forbruges af systemet, samt likwid-setFrequency, som giver dig mulighed for at styre processorfrekvensen. Du kan se hele listen finde i depotet.

Værktøjet bruges af ingeniører involveret i HPC-forskning. For eksempel med likwid værker en gruppe specialister fra det regionale computercenter ved universitetet i Erlangen-Nürnberg (RRZE) i Tyskland. Hun deltager også aktivt i udviklingen af ​​dette sæt værktøjer.

Benchmarks for Linux-servere: et udvalg af åbne værktøjer
Ф billeder - Clem Onojeghuo — Unsplash

perf-værktøjer

Dette værktøj til at analysere ydeevnen af ​​Linux-servere indsendt Brendan Gregg. Han er en af ​​udviklerne DTrace — en dynamisk sporingsramme til debugging af applikationer i realtid.

perf-tools er baseret på perf_events og ftrace-kernedelsystemerne. Deres hjælpeprogrammer giver dig mulighed for at analysere I/O-latens (iosnoop), spore systemkaldsargumenter (unccount, funclower, funcgraph og functrace) og indsamle statistik om "hits" i filcachen (cachestat). I sidstnævnte tilfælde ser kommandoen således ud:

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

Der er dannet et ret stort fællesskab omkring instrumentet (næsten 6 tusind stjerner på GitHub). Og der er virksomheder, der aktivt bruger perf-tools, f.eks Netflix. Men værktøjet er ved at blive videreudviklet og modificeret (selvom der er udgivet opdateringer ret sjældent på det seneste). Derfor kan der opstå fejl i dens drift - forfatteren skriver, at nogle gange forårsager perf-tools kernepanik.

llvm-mca

Et værktøj, der forudsiger, hvor mange computerressourcer maskinkode vil kræve på forskellige CPU'er. Hun vurderer Instruktioner pr. cyklus (IPC) og belastningen på den hardware, som en bestemt applikation genererer.

llvm-mca blev præsenteret i 2018 som en del af projektet LLVM, som udvikler et universelt system til analyse, transformation og optimering af programmer. Det er kendt, at forfatterne af llvm-mca blev inspireret af en løsning til analyse af softwareydelse IACA fra Intel og søgte at skabe et alternativ. Og ifølge brugerne ligner værktøjets output (deres layout og mængde) virkelig IACA - eksempel kan findes her. Dog accepterer llvm-mca kun AT&T syntaks, så du bliver højst sandsynligt nødt til at bruge konvertere for at arbejde med det.

Hvad vi skriver om på vores blogs og sociale netværk:

Benchmarks for Linux-servere: et udvalg af åbne værktøjer "Måtte. Wall Street model" eller hvordan man optimerer skyomkostninger

Benchmarks for Linux-servere: et udvalg af åbne værktøjer Sådan sikrer du dit Linux-system: 10 tips
Benchmarks for Linux-servere: et udvalg af åbne værktøjer Minimering af risici: hvordan man ikke mister dine data

Benchmarks for Linux-servere: et udvalg af åbne værktøjer Bøger til dem, der allerede er involveret i systemadministration eller lige planlægger at starte
Benchmarks for Linux-servere: et udvalg af åbne værktøjer Udvalg: fem bøger og et kursus om netværk

Benchmarks for Linux-servere: et udvalg af åbne værktøjerVi hos 1cloud.ru tilbyder en gratis service “DNS-hosting" Du kan administrere DNS-poster på en enkelt personlig konto.

Kilde: www.habr.com

Tilføj en kommentar