Benchmarks für Linux-Server: Eine Sammlung von Open-Source-Tools

Wir setzen unsere Vorstellung von Werkzeugen zur Bewertung der CPU-Leistung auf Linux-Maschinen fort. Heute behandeln wir: temci, uarch-bench, likwid, perf-tools und llvm-mca.

Weitere Benchmarks:

Benchmarks für Linux-Server: Eine Sammlung von Open-Source-Tools
Foto – Lukas Blazek — Unsplash

temci

Dieses Werkzeug bewertet die Ausführungszeiten zweier Programme. Es ermöglicht im Wesentlichen den Vergleich der Laufzeit zweier Anwendungen. Der Entwickler der Software, Johannes Bechberger, ein Student aus Deutschland, entwarf dieses Tool im Rahmen seiner Bachelorarbeit im Jahr 2016. Heute ist das Werkzeug wird unter der GPLv3-Lizenz bereitgestellt. unter der GNU General Public License erhältlich.

Johannes wollte ein Tool schaffen, das die Leistung eines Rechners in einer kontrollierten Umgebung messen kann. Eine der Hauptfunktionen von temci ist die Möglichkeit, die Testumgebung anzupassen. Zum Beispiel, kann: die Einstellungen des CPU-Frequenzmanagements zu ändern, Hyper-Threading und die Caches L1 und L2 zu deaktivieren, den Turbo-Modus bei Intel-Prozessoren auszuschalten und mehr. Für das Benchmarking verwendet temci die Tools time, perf_stat und getrusage.

So sieht die Ausführung des Tools 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

Das System erstellt einen benutzerfreundlichen Bericht basierend auf den Benchmark-Ergebnissen. mit Diagrammen, Tabellen und Grafiken, die temci von ähnlichen Lösungen abheben.

Ein Nachteil von temci ist seine "Jüngigkeit". Dadurch 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-Prozessor sind einige Funktionen nicht verfügbar. In Zukunft könnte sich die Situation ändern, da der Entwickler das Projekt aktiv weiterentwickelt und die Anzahl der Sterne auf GitHub stetig zunimmt — vor nicht allzu langer Zeit wurde temci sogar in den Kommentaren auf Hacker News diskutiert.

uarch-bench

Ein Tool zur Bewertung der Leistung von Low-Level-CPU-Funktionen, das von Ingenieur Travis Downs (Travis Downs) entwickelt wurde. Seit Kurzem betreibt er seinen Blog Performance Matters auf GitHub Pages, in dem er über Werkzeuge für Benchmarking und andere damit zusammenhängende Themen schreibt. Insgesamt gewinnt uarch-bench derzeit gerade erst an Popularität, wird jedoch bereits recht häufig wird erwähnt von Mitgliedern von Hacker News in thematischen Threads als Go-to-Werkzeug für Benchmarking erwähnt.

Uarch-bench ermöglicht die Bewertung der Speichergeschwindigkeit, die Geschwindigkeit der parallelen Datenladung und die Arbeit mit der Bereinigung der YMM-Register. Wie die Benchmark-Ergebnisse aussehen, die von dem Programm generiert werden, ist zu finden im offiziellen Repository am Ende der Seite.

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

Das Projekt befindet sich derzeit in einem frühen Entwicklungsstadium, daher gibt es für uarch-bench keine ausführliche Dokumentation, und es können Bugs auftreten – zum Beispiel sind Schwierigkeiten beim Start auf Ryzen bekannt. Zudem werden nur Benchmarks für x86-Architekturen unterstützt. Der Autor verspricht, in Zukunft mehr Funktionalitäten hinzuzufügen und lädt zur Mitentwicklung ein.

likwid

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 als Open Source bereitgestellt.

Unter den Werkzeugen von likwid sticht der likwid-powermeter hervor, der Informationen aus den RAPL-Registern über die von der System verbrauchte Leistung ausgibt, sowie likwid-setFrequencies – ein Werkzeug zur Steuerung der Prozessorfrequenz. Eine vollständige Liste finden Sie im Repository.

Dieses Tool wird von Ingenieuren verwendet, die sich mit Forschungen im Bereich HPC beschäftigen. Zum Beispiel von einer Gruppe von Spezialisten des Regionalen Rechenzentrums der Universität Erlangen-Nürnberg (RRZE) in Deutschland. Diese ist auch aktiv an der Entwicklung dieses Werkzeugpakets beteiligt. mit einem einzigen Thread arbeitet. eine Gruppe von Fachleuten des Regionalen Rechenzentrums der Universität Erlangen-Nürnberg (RRZE) in Deutschland. Diese beteiligt sich aktiv an der Entwicklung dieses Toolkits.

Benchmarks für Linux-Server: Eine Sammlung von Open-Source-Tools
Foto – Clem Onojeghuo — Unsplash

perf-tools

Dieses Tool dient zur Analyse der Leistung von Linux-Servern den Brendan Gregg. Er ist einer der Entwickler DTrace – eines Frameworks zur dynamischen Trace-Analyse für die Echtzeit-Debugging von Anwendungen.

Die perf-tools basieren auf den Kernel-Subsystemen perf_events und ftrace. Ihre Tools ermöglichen die Analyse der Eingabe-/Ausgabeverzögerungen (iosnoop), die Verfolgung von Argumenten bei Systemaufrufen (unccount, funcslower, funcgraph und functrace) und die Erfassung von Statistiken über „Treffer“ im Dateicache (cachestat). Im letzten 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 Tool hat sich eine recht umfangreiche Community gebildet (fast 6.000 Sterne auf GitHub). Es gibt Unternehmen, die perf-tools aktiv nutzen, wie zum Beispiel Netflix. Das Tool wird kontinuierlich weiterentwickelt, auch wenn es in letzter Zeit nur selten Updates gibt. Dabei können Fehler auftreten — der Autor berichtet, dass perf-tools manchmal einen Kernel-Panic auslösen kann.

llvm-mca

Dies ist ein Werkzeug, das vorhersagt, wie viele Rechenressourcen der maschinenlesbare Code auf verschiedenen CPUs benötigen wird. Es analysiert die den Instructions Per Cycle (IPC) und die Belastung der Hardware, die durch bestimmte Anwendungen erzeugt wird.

llvm-mca wurde 2018 im Rahmen des Projekts LLVMvorgestellt, das sich mit der Entwicklung eines universellen Systems zur Analyse, Transformation und Optimierung von Software beschäftigt. Es ist bekannt, dass die Entwickler von llvm-mca sich von der Performance-Analyse-Lösung IACA von Intel inspirieren ließen und eine Alternative dazu schaffen wollten. Nutzer berichten, dass die Ausgaben des Tools (ihre Anordnung und Anzahl) tatsächlich an IACA erinnern — ein Beispiel dafür finden Sie hier. llvm-mca unterstützt jedoch nur AT&T-Syntax, weshalb sehr wahrscheinlich Konverter verwendet werden müssen, um damit zu arbeiten.

Worüber wir in unseren Blogs und sozialen Medien schreiben:

Benchmarks für Linux-Server: Eine Sammlung von Open-Source-Tools „Mathematische Modelle an der Wall Street“ oder wie man Cloud-Kosten optimiert

Benchmarks für Linux-Server: Eine Sammlung von Open-Source-Tools 10 Tipps zur Sicherung von Linux-Systemen
Benchmarks für Linux-Server: Eine Sammlung von Open-Source-Tools Risikominimierung: Wie Sie Ihre Daten nicht verlieren

Benchmarks für Linux-Server: Eine Sammlung von Open-Source-Tools Bücher für diejenigen, die bereits in der Systemadministration tätig sind oder gerade erst anfangen möchten
Benchmarks für Linux-Server: Eine Sammlung von Open-Source-Tools Empfehlungen: fünf Bücher und ein Kurs über Netzwerke

Benchmarks für Linux-Server: Eine Sammlung von Open-Source-ToolsWir bei 1cloud.ru bieten einen kostenlosen Dienst „DNS-Hosting“. Die Verwaltung der DNS-Einträge erfolgt in unserem einheitlichen Kundenportal.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster