Benchmarking for servere på Linux: en samling af åbne værktøjer

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

Flere benchmarks:

Benchmarking for servere på Linux: en samling af åbne værktøjer
Foto — Lukas Blazek — Unsplash

temci

Dette er et værktøj til at vurdere køretiden for to programmer. I essensen giver det mulighed for at sammenligne køretiderne for to applikationer. Udvikleren af dette værktøj er studerende Johannes Bechberger fra Tyskland, som skabte det som en del af sit bachelorprojekt i 2016. I dag er værktøjet distribueres under GNU General Public License.

Johannes ønskede at skabe et værktøj, der kunne måle ydeevnen af et computersystem i et kontrolleret miljø. En af de vigtigste funktioner ved temci er, at man kan konfigurere testmiljøet. For eksempel, you can: ændre indstillingerne for CPU-frekvensstyringssystemet, deaktivere hyper-threading og L1- og L2-cache, samt deaktivere turbo-tilstand på Intel-processorer og mere. Til benchmarking bruger temci værktøjerne time, perf_stat og getrusage.

Sådan ser værktøjets funktionalitet 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

Som et resultat af benchmarkingen genererer systemet en brugervenlig rapport med diagrammer, tabeller og grafer, hvilket adskiller temci fra lignende løsninger.

En ulempe ved temci er dens 'ungdom'. Derfor understøtter den ikke alle konfigurationer af hardware og software. For eksempel kan det være vanskeligt at køre den på macOS, og på et system med ARM-processor er nogle funktioner utilgængelige. Fremover kan situationen ændre sig, da udvikleren aktivt arbejder på projektet, og antallet af stjerner på GitHub gradvist stiger — for nylig blev temci endda diskuteret i kommentarerne på Hacker News.

uarch-bench

Et værktøj til at vurdere ydeevnen af lavniveau CPU-funktioner, udviklet af ingeniøren Travis Downs (Travis Downs). For nylig har han startet sin egen blog Performance Matters på GitHub Pages, hvor han fortæller om værktøjer til benchmarking og andre relaterede emner. Generelt er uarch-bench stadig kun i starten af sin popularitet, men bliver allerede hyppigt nævnes nævnt af brugerne på Hacker News i relevante tråde som et go-to værktøj til benchmarking.

Uarch-bench gør det muligt at vurdere hukommelsens ydeevne, hastigheden af parallel dataloading og arbejdet med at rydde YMM-registerne. Hvordan benchmark-resultaterne, der genereres af programmet, ser ud, kan findes i det officielle repository nederst på siden.

Det skal bemærkes, at uarch-bench, ligesom temci, deaktiverer Intel Turbo Boost-funktionen (den øger automatisk processorens clockfrekvens under belastning), så testresultaterne er konsistente.

Projektet er stadig i de tidlige udviklingsstadier, så uarch-bench har ikke detaljeret dokumentation, og der kan opstå fejl i dets funktion — for eksempel der er kendte problemer med at køre på Ryzen. Der understøttes også kun benchmarks for x86-arkitekturer. Forfatteren lover at tilføje flere funktioner i fremtiden og inviterer til at deltage i udviklingen.

likwid

Dette er et værktøjssæt til ydeevnevurdering af Linux-maskiner med Intel-, AMD- og ARMv8-processorer. Det blev oprettet under ledelse af det føderale ministerium for uddannelse og forskning i Tyskland i 2017 og er blevet open source.

Blandt likwid-værktøjerne kan man fremhæve likwid-powermeter, som viser information fra RAPL-registerne om systemets strømforbrug, samt likwid-setFrequencies — der giver mulighed for at kontrollere processorens frekvens. Du kan finde den komplette liste i repositoryet.

Værktøjet bruges af ingeniører, der forsker inden for HPC. For eksempel bruger en gruppe specialister fra Regional Computing Center ved University of Erlangen-Nuremberg (RRZE) i Tyskland likwid. De deltager også aktivt i udviklingen af dette værktøjssæt. virker perf-tools

Benchmarking for servere på Linux: en samling af åbne værktøjer
Foto — Clem Onojeghuo — Unsplash

Dette værktøj til ydeevneanalyse af Linux-servere

Brendan Gregg. Han er en af udviklerne den — et framework til dynamisk tracing for debugging af applikationer i realtid. DTrace Perf-tools er baseret på delsystemerne kernel perf_events og ftrace. Deres værktøjer giver mulighed for at analysere input/output forsinkelse (iosnoop), spore argumenter til systemopkald (unccount, funcslower, funcgraph og functrace) og indsamle statistik om “hits” i filcachet (cachestat). I det sidste tilfælde ser kommandoen således ud:

Omkring værktøjet er der dannet et ganske stort fællesskab (

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

næsten 6 tusinde stjerner på GitHub). Og der er virksomheder, der aktivt bruger perf-tools, for eksempel). Og der er virksomheder, der aktivt bruger perf-tools, for eksempel Netflix. Men værktøjet revideres og modificeres (selvom opdateringerne har været ret sjældne på det seneste). Derfor kan der opstå fejl i dets funktion — forfatteren nævner, at perf-tools nogle gange forårsager kernel panic.

llvm-mca

Et værktøj, der forudsiger, hvor mange computerressourcer en maskinkode vil kræve på forskellige CPU'er. Det vurderer Instructions Per Cycle (IPC) og den belastning, som den bestemte applikation genererer på hardware’en.

llvm-mca blev introduceret i 2018 som en del af projektet LLVM, der arbejder med udvikling af et universelt system til analyse, transformation og optimering af programmer. Det er kendt, at skaberne af llvm-mca blev inspireret af en løsning til softwareydelsesanalyse IACA fra Intel og forsøgte at skabe et alternativ. Ifølge brugerne ligner output fra værktøjet (deres strukturer og antal) faktisk IACA — et eksempel can be found here. Men llvm-mca accepterer kun AT&T-syntaks, så det vil sandsynligvis være nødvendigt at bruge konvertere for at arbejde med det.

Hvad vi skriver om i vores blogs og sociale medier:

Benchmarking for servere på Linux: en samling af åbne værktøjer «Matematisk model fra Wall Street» eller hvordan man optimerer omkostningerne til cloud

Benchmarking for servere på Linux: en samling af åbne værktøjer What we write about on Habr:
Benchmarking for servere på Linux: en samling af åbne værktøjer Minimering af risici: hvordan man undgår at miste dine data

Benchmarking for servere på Linux: en samling af åbne værktøjer Bøger for dem, der allerede beskæftiger sig med systemadministration eller kun planlægger at starte
Benchmarking for servere på Linux: en samling af åbne værktøjer Udvalg: fem bøger og et kursus om netværk

Benchmarking for servere på Linux: en samling af åbne værktøjerVi hos 1cloud.ru tilbyder en gratis service «DNS-hosting». Du kan administrere DNS-poster hos os i et samlet kontrolpanel.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster