Benchmarks voor servers op Linux: een verzameling open tools

We continue to discuss tools for evaluating CPU performance on Linux machines. Today's material includes: temci, uarch-bench, likwid, perf-tools, and llvm-mca.

More benchmarks:

Benchmarks voor servers op Linux: een verzameling open tools
Foto — Lukas Blazek — Unsplash

temci

This is a tool for measuring the execution time of two programs. Essentially, it allows you to compare the execution time of two applications. The utility was developed by a student from Germany, Johannes Bechberger, who created it as part of his bachelor's thesis in 2016. Today, the tool wordt verspreid is licensed under the GNU General Public License.

Johannes wanted to create a tool that would measure the performance of the computing system in a controlled environment. Therefore, one of the main features of temci is the ability to configure the testing environment. For example, kan: change the settings of the CPU frequency management, disable hyper-threading and L1 and L2 caches, turn off turbo mode on Intel processors, and more. For benchmarking, temci uses the tools met behulp van de mutate-plugin, de vereiste tijdzone instellen en deze tijdstempel plaatsen in, perf_stat en getrusage.

Here’s how the utility works in the first case:

# 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

Based on the benchmarking results, the system generates a convenient report with diagrams, tables, and graphs, which distinguishes temci from similar solutions.

Among the drawbacks of temci is its 'youth'. Because of this, it does not support all hardware and software configurations. For example, it is difficult to run under macOS, and some features are unavailable on ARM processor systems. This situation may change in the future, as the author is actively developing the project, and the number of stars on GitHub is gradually increasing — just recently, temci was even discussed in comments on Hacker News.

uarch-bench

A utility for evaluating the performance of low-level CPU functions, developed by engineer Travis Downs. Recently, he has been maintaining his blogPerformance Matterson GitHub Pages, where he discusses tools for benchmarking and other related topics. Overall, uarch-bench is just beginning to gain popularity but is already frequently mentioned by Hacker News residents in thematic threads as a go-to tool for benchmarking. Uarch-bench allows measuring memory performance, the speed of parallel data loading, and the operation of clearing YMM registers.

YMM registers. YMM registers.De resultaten van de benchmarking die door het programma worden gegenereerd, zijn te vinden in de officiële repository onderaan de pagina.

Het is vermeldenswaard dat uarch-bench, net als temci, deactivateert de Intel Turbo Boost-functie (die automatisch de kloksnelheid van de processor verhoogt onder belasting), zodat de testresultaten consistent zijn.

Het project bevindt zich nog in een vroeg stadium van ontwikkeling, dus uarch-bench heeft geen uitgebreide documentatie en er kunnen bugs optreden in de werking ervan — bijvoorbeeld, er zijn bekende problemen met het opstarten op Ryzen. Daarnaast wordt er alleen ondersteuning geboden voor benchmarks voor x86-architecturen. De auteur belooft in de toekomst meer functionaliteit toe te voegen en nodigt uit om deel te nemen aan de ontwikkeling.

likwid

Dit is een set van tools voor het evalueren van de prestaties van Linux-machines met Intel-, AMD- en ARMv8-processors. Het is opgericht onder auspiciën van het Duitse Federal Ministry of Education and Research in 2017 en is vrijgegeven als open source.

Onder de tools van likwid kunnen we likwid-powermeter opmerken, die informatie uit de RAPL-registers over het door het systeem verbruikte vermogen toont, en likwid-setFrequencies — waarmee de kloksnelheid van de processor kan worden gecontroleerd. Een volledige lijst kunt u vinden in de repository.

De tool wordt gebruikt door ingenieurs die zich bezighouden met onderzoek op het gebied van HPC. Bijvoorbeeld, met likwid slechts met één thread werkt. werkt een groep specialisten van het Regional Computing Center van de Universiteit van Erlangen-Nürnberg (RRZE) in Duitsland. Zij nemen ook actief deel aan de ontwikkeling van deze set tools.

Benchmarks voor servers op Linux: een verzameling open tools
Foto — Clem Onojeghuo — Unsplash

perf-tools

Deze tool voor de analyse van de prestaties van Linux-servers gepresenteerd Brendan Gregg. Hij is een van de ontwikkelaars DTrace - van het dynamische traceerframework voor het debuggen van applicaties in realtime.

De kern van perf-tools bestaat uit de subsysteem kernel perf_events en ftrace. De hulpprogramma's stellen u in staat om de invoer-/uitvoervertraging (iosnoop) te analyseren, de argumenten van systeemoproepaanroepen (unccount, funcslower, funcgraph en functrace) te volgen, en statistieken over 'hits' in de bestandscache te verzamelen (cachestat). In het laatste geval ziet de opdracht er als volgt uit:

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

Rond de tool is een vrij uitgebreide gemeenschap gevormd (bijna 6 duizend sterren op GitHub). En er zijn bedrijven die perf-tools actief gebruiken, bijvoorbeeld Netflix. Maar de tool wordt verder ontwikkeld en aangepast (hoewel er de laatste tijd niet veel updates zijn verschenen). Daarom kunnen er fouten optreden in de werking ervan — de auteur schrijft dat perf-tools soms kernel panic veroorzaakt.

llvm-mca

Een hulpprogramma dat voorspelt hoeveel rekenkracht machinecode op verschillende CPU's nodig heeft. Het schat het tijdschrift Nature Instructions Per Cycle (IPC) en de belasting op de hardware die door een bepaalde applicatie wordt gegenereerd.

llvm-mca werd in 2018 gepresenteerd als onderdeel van een project LLVM, dat zich bezighoudt met de ontwikkeling van een universeel systeem voor analyse, transformatie en optimalisatie van programma's. Het is bekend dat de auteurs van llvm-mca zich hebben laten inspireren door de performance-analyse oplossing IACA van Intel en streefden naar een alternatief. Gebruikers beweren dat de output van de tool (de markering en hoeveelheid) inderdaad doet denken aan IACA — een voorbeeld is hier te vinden. Echter, llvm-mca accepteert alleen AT&T-syntax, dus voor gebruik ermee zal je waarschijnlijk converters moeten gebruiken.

Waar we over schrijven in onze blogs en sociale media:

Benchmarks voor servers op Linux: een verzameling open tools ‘Wiskundig model van Wall Street’ of hoe kosten in de cloud te optimaliseren

Benchmarks voor servers op Linux: een verzameling open tools Hoe Linux-systemen te beveiligen: 10 tips
Benchmarks voor servers op Linux: een verzameling open tools Risico's minimaliseren: hoe je je gegevens niet verliest

Benchmarks voor servers op Linux: een verzameling open tools Boeken voor degenen die al bezig zijn met systeembeheer of net willen beginnen
Benchmarks voor servers op Linux: een verzameling open tools Selectie: vijf boeken en één cursus over netwerken

Benchmarks voor servers op Linux: een verzameling open toolsBij 1cloud.ru bieden we een gratis dienst aan: ‘DNS-hosting’. Je kunt DNS-records bij ons beheren in een uniform klantenpaneel.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster