Benchmarks fĂŒr Linux-Server: Sammlung öffentlicher Werkzeuge

Wir setzen unsere Berichterstattung ĂŒber Werkzeuge zur Bewertung der CPU-Leistung auf Linux-Maschinen fort. Heute im Material: temci, uarch-bench, likwid, perf-tools und llvm-mca.

Weitere Benchmarks:

Benchmarks fĂŒr Linux-Server: Sammlung öffentlicher Werkzeuge
Foto – Lukas Blazek – Unsplash

temci

Dies ist ein Werkzeug zur Bewertung der AusfĂŒhrungszeit von zwei Programmen. Im Wesentlichen ermöglicht es den Vergleich der AusfĂŒhrungszeit zweier Anwendungen. Der Autor des Tools ist der Student aus Deutschland, Johannes Bechberger, der es im Rahmen seiner Bachelorarbeit im Jahr 2016 entwickelt hat. Heute ist das Werkzeug wird verbreitet unter der GNU General Public License verfĂŒgbar.

Johannes wollte ein Werkzeug entwickeln, das es ermöglicht, die Leistung eines Computersystems in einer kontrollierten Umgebung zu messen. Daher ist eine der Hauptmerkmale von temci die Möglichkeit, die Testumgebung einzustellen. Zum Beispiel, kann man: die Einstellungen des CPU-Frequenzmanagement-Controllers Ă€ndern, Hyper-Threading und die Caches L1 und L2 deaktivieren, den Turbo-Modus bei Intel-Prozessoren abschalten usw. FĂŒr das Benchmarking verwendet temci die Werkzeuge time, perf_stat und getrusage.

So sieht die AusfĂŒhrung des Werkzeugs im ersten Fall aus:

# 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

Basierend auf den Benchmarking-Ergebnissen erstellt das System einen anschaulichen Bericht mit Diagrammen, Tabellen und Grafiken, was temci von Àhnlichen Lösungen unterscheidet.

Ein Nachteil von temci ist seine "Jugendlichkeit". Daher unterstĂŒtzt es nicht alle Konfigurationen von Hardware und Software. Zum Beispiel ist es schwierig, es unter macOS auszufĂŒhren, und auf Systemen mit ARM-Prozessoren sind einige Funktionen nicht verfĂŒgbar. In Zukunft könnte sich die Situation Ă€ndern, da der Autor aktiv an dem Projekt arbeitet und die Anzahl der Sterne auf GitHub allmĂ€hlich zunimmt – kĂŒrzlich wurde temci sogar in den Kommentaren diskutiert auf Hacker News.

uarch-bench

Ein Werkzeug zur Bewertung der Leistung von Low-Level-Funktionen der CPU, das von Ingenieur Travis Downs (Travis Downs) entwickelt wurde. Seit neuestem betreibt er seinen Blog Performance Matters auf GitHub Pages, in dem er ĂŒber Werkzeuge fĂŒr Benchmarking und andere verwandte Themen berichtet. Insgesamt beginnt uarch-bench bisher, an PopularitĂ€t zu gewinnen, wird aber bereits recht hĂ€ufig wird erwĂ€hnt von den Nutzern von Hacker News in thematischen Threads als Go-To-Werkzeug fĂŒr das Benchmarking erwĂ€hnt.

Uarch-bench ermöglicht die Bewertung der Speichergeschwindigkeit, der Geschwindigkeit des parallelen Datenladevorgangs und der Funktionsweise der Bereinigung. YMM-Register. Wie die von der Software generierten Benchmark-Ergebnisse aussehen, erfahren Sie im offiziellen Repository. am Ende der Seite.

Es ist zu beachten, dass uarch-bench, wie auch temci, deaktiviert die Intel Turbo Boost-Funktion (die die Taktrate des Prozessors unter Last automatisch erhöht), um konsistente Testergebnisse zu erzielen.

Das Projekt befindet sich noch in einem frĂŒhen Entwicklungsstadium, daher gibt es keine ausfĂŒhrliche Dokumentation zu uarch-bench, und es können Bugs auftreten – zum Beispiel sind bekannte Schwierigkeiten mit dem Start auf Ryzen. Es werden zudem nur Benchmarks fĂŒr x86-Architekturen unterstĂŒtzt. Der Autor verspricht, in Zukunft mehr FunktionalitĂ€ten hinzuzufĂŒgen und lĂ€dt zur Mitarbeit an der Entwicklung ein.

likwid

Das ist ein Toolset zur Leistungsbewertung von Linux-Maschinen mit Intel-, AMD- und ARMv8-Prozessoren. Es wurde 2017 unter der Schirmherrschaft des Bundesministeriums fĂŒr Bildung und Forschung Deutschlands entwickelt und in die Open Source ĂŒbergeben.

Unter den Werkzeugen von likwid ist vor allem likwid-powermeter hervorzuheben, das Informationen aus den RAPL-Registern zur vom System verbrauchten Leistung anzeigt, sowie likwid-setFrequencies – es ermöglicht die Steuerung der Prozessorfrequenz. Eine vollstĂ€ndige Liste finden Sie im Repository..

Das Werkzeug wird von Ingenieuren genutzt, die in der HPC-Forschung tĂ€tig sind. Beispielsweise arbeitet an uarch-bench eine Gruppe von Fachleuten des Regionalen Rechenzentrums der UniversitĂ€t Erlangen-NĂŒrnberg (RRZE) in Deutschland. Diese Gruppe ist auch aktiv an der Entwicklung dieses Toolsets beteiligt.

Benchmarks fĂŒr Linux-Server: Sammlung öffentlicher Werkzeuge
Foto – Clem Onojeghuo – Unsplash

perf-tools

Dieses Werkzeug zur Leistungsanalyse von Linux-Servern vor wurde von Brendan Gregg entwickelt. Er ist einer der Entwickler von DTrace – einem Framework zur dynamischen Nachverfolgung zur Fehlerbehebung von Anwendungen in Echtzeit.

Die Grundlage von perf-tools bilden die Kernel-Subsysteme perf_events und ftrace. Ihre Dienstprogramme ermöglichen die Analyse von Eingabe-/Ausgabe-Verzögerungen (iosnoop), das Nachverfolgen von Argumenten von Systemaufrufen (unccount, funcslower, funcgraph und functrace) und das Sammeln von Statistiken ĂŒber "Treffern" im Dateicache (cachestat). Im letzteren Fall sieht der Befehl so aus:

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

Rund um das Werkzeug hat sich eine recht große Gemeinschaft gebildet (fast 6.000 Sterne auf GitHub.). Und es gibt Unternehmen, die aktiv perf-tools nutzen, zum Beispiel Netflix. Aber das Werkzeug wird weiterentwickelt und modifiziert (obwohl in letzter Zeit Updates eher selten erscheinen). Daher kann es in seiner Funktion zu Fehlern kommen — der Autor beschreibt, dass perf-tools gelegentlich einen Kernel-Panic auslöst.

llvm-mca

Ein Tool, das vorhersagt, wie viele Rechenressourcen der Maschinen-Code auf verschiedenen CPUs benötigen wird. Es schÀtzt Instructions Per Cycle (IPC) und die Belastung der Hardware, die von einer bestimmten Anwendung erzeugt wird.

llvm-mca wurde 2018 im Rahmen des Projekts LLVM, das sich mit der Entwicklung eines universellen Systems zur Analyse, Transformation und Optimierung von Programmen beschĂ€ftigt. Es ist bekannt, dass die Autoren von llvm-mca von einer Performance-Analyse-Lösung inspiriert wurden, IACA von Intel , und sie strebten an, eine Alternative dazu zu schaffen. Und laut den Nutzern Ă€hnelt die Ausgabe des Tools (ihre Formatierung und Anzahl) tatsĂ€chlich IACA — ein Beispiel kann hier gefunden werden. Allerdings akzeptiert llvm-mca nur AT&T-Syntax, daher wird es wahrscheinlich notwendig sein, Konverter zu verwenden.

WorĂŒber wir in unseren Blogs und sozialen Netzwerken schreiben:

Benchmarks fĂŒr Linux-Server: Sammlung öffentlicher Werkzeuge „Mathematische Modelle von der Wall Street“ oder wie man Kosten fĂŒr die Cloud optimiert

Benchmarks fĂŒr Linux-Server: Sammlung öffentlicher Werkzeuge Was wir auf HabrĂ© schreiben:
Benchmarks fĂŒr Linux-Server: Sammlung öffentlicher Werkzeuge Risikominimierung: Wie man Datenverlust vermeidet

Benchmarks fĂŒr Linux-Server: Sammlung öffentlicher Werkzeuge BĂŒcher fĂŒr diejenigen, die bereits Systemadministration betreiben oder gerade erst damit beginnen
Benchmarks fĂŒr Linux-Server: Sammlung öffentlicher Werkzeuge Eine Auswahl: fĂŒnf BĂŒcher und ein Kurs ĂŒber Netzwerke

Benchmarks fĂŒr Linux-Server: Sammlung öffentlicher WerkzeugeWir bei 1cloud.ru bieten einen kostenlosen Dienst „DNS-Hosting“ an. Die Verwaltung von DNS-EintrĂ€gen ist bei uns in einem einzigen persönlichen Bereich möglich.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster