Benchmarks für Server unter Linux: eine Auswahl an Open-Source-Tools

Wir sprechen weiterhin über Tools zur Bewertung der CPU-Leistung auf Linux-Rechnern. Heute im Material: Temci, Uarch-Bench, Likwid, Perf-Tools und LLVM-MCA.

Weitere Benchmarks:

Benchmarks für Server unter Linux: eine Auswahl an Open-Source-Tools
Фото - Lukas Blasek – Unsplash

temci

Dies ist ein Tool zum Schätzen der Ausführungszeit zweier Programme. Tatsächlich können Sie damit die Ausführungszeit zweier Anwendungen vergleichen. Das Dienstprogramm wurde vom deutschen Studenten Johannes Bechberger verfasst, der es im Rahmen seiner Bachelorarbeit im Jahr 2016 entwickelte. Heute Werkzeug vertrieben von lizenziert unter der GNU General Public License.

Johannes wollte ein Tool entwickeln, mit dem sich die Leistung eines Computersystems in einer kontrollierten Umgebung messen lässt. Daher ist eine der Hauptfunktionen von Temci die Möglichkeit, die Testumgebung anzupassen. Zum Beispiel, kann man: Ändern Sie die Einstellungen des CPU-Frequenzsteuerungsmanagers und deaktivieren Sie ihn Hyper-Threading und L1- und L2-Caches, Deaktivieren des Turbomodus auf Intel-Prozessoren usw. Für das Benchmarking verwendet temci Tools Zeit, perf_stat и Getrusage.

So sieht das Dienstprogramm 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 Ergebnissen des Benchmarking generiert das System praktischer Bericht mit Diagrammen, Tabellen und Grafiken, was Temci von ähnlichen Lösungen unterscheidet.

Von den Mängeln von Temci sticht seine „Jugend“ hervor. Aus diesem Grund hat er unterstützt nicht alle Hardware- und Softwarekonfigurationen. Beispielsweise ist die Ausführung unter macOS schwierig und einige Funktionen sind auf einem System mit einem ARM-Prozessor nicht verfügbar. In Zukunft könnte sich die Situation ändern, da der Autor das Projekt aktiv weiterentwickelt und die Anzahl der Sterne auf GitHub allmählich zunimmt – vor nicht allzu langer Zeit sogar Temci in den Kommentaren besprochen auf Hacker News.

Uarch-Bank

Ein Dienstprogramm zur Bewertung der Leistung von CPU-Funktionen auf niedriger Ebene, entwickelt vom Ingenieur Travis Downes (Travis Downs). Seit Kurzem bloggt er Leistungsfragen auf GitHub-Seiten, wo es um Benchmarking-Tools und andere damit zusammenhängende Dinge geht. Im Allgemeinen gewinnt Uarch-Bench gerade erst an Popularität, aber schon ziemlich oft упоминается Hacker News-Bewohner in thematischen Threads als beliebtes Benchmarking-Tool.

Mit Uarch-Bench können Sie die Speicherleistung, die Geschwindigkeit beim parallelen Laden von Daten und die Bereinigungsarbeit bewerten YMM-Register. Wie die vom Programm generierten Benchmarking-Ergebnisse aussehen, finden Sie hier im offiziellen Repository am Ende der Seite.

Es ist erwähnenswert, dass Uarch-Bank, wie Temci, trennt sich die Intel Turbo Boost-Funktion (sie erhöht automatisch die Prozessortaktrate unter Last), damit die Testergebnisse konsistent sind.

Bisher befindet sich das Projekt in einem frühen Entwicklungsstadium, daher verfügt uarch-bench nicht über eine detaillierte Dokumentation und es können Fehler in seiner Arbeit auftreten – zum Beispiel Schwierigkeiten sind bekannt läuft auf Ryzen. Es werden auch nur Benchmarks für x86-Architekturen unterstützt. Der Autor verspricht, in Zukunft weitere Funktionen hinzuzufügen und lädt Sie ein, sich an der Entwicklung zu beteiligen.

flüssig

Hierbei handelt es sich um eine Reihe von Tools zur Bewertung der Leistung von Linux-Maschinen mit Intel-, AMD- und ARMv8-Prozessoren. Es wurde 2017 unter der Schirmherrschaft des Bundesministeriums für Bildung und Forschung erstellt und auf Open Source überführt.

Unter den Likwid-Tools können wir Likwid-Powermeter hervorheben, das Informationen aus RAPL-Registern über den vom System verbrauchten Strom anzeigt, sowie Likwid-setFrequences, mit dem Sie die Prozessorfrequenz steuern können. Für eine vollständige Liste können Sie im Repository finden.

Das Tool wird von HPC-Forschungsingenieuren verwendet. Zum Beispiel mit likwid arbeitet eine Gruppe von Spezialisten des Regionalen Rechenzentrums der Universität Erlangen-Nürnberg (RRZE) in Deutschland. Sie ist auch aktiv an der Entwicklung dieses Toolset beteiligt.

Benchmarks für Server unter Linux: eine Auswahl an Open-Source-Tools
Фото - Clem Onojeghuo – Unsplash

Perf-Tools

Dieses Tool zur Analyse der Leistung von Linux-Servern eingeführt Brendan Gregg. Er ist einer der Entwickler DTrace – ein dynamisches Tracing-Framework zum Debuggen von Anwendungen in Echtzeit.

Perf-tools basiert auf den Kernel-Subsystemen perf_events und ftrace. Mit ihren Dienstprogrammen können Sie die E/A-Latenz analysieren (iosnoop), Systemaufrufargumente verfolgen (unccount, funcslower, funcgraph und functrace) und Statistiken über Datei-Cache-Treffer sammeln (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 Tool hat sich eine ziemlich große Community gebildet (fast 6 Sterne auf GitHub). Und es gibt Unternehmen, die beispielsweise Perf-Tools aktiv nutzen Netflix. Aber das Tool wird gerade finalisiert und modifiziert (obwohl Updates in letzter Zeit recht selten veröffentlicht wurden). Daher können bei seiner Arbeit Fehler auftreten – der Autor schreibt, dass Perf-Tools manchmal Kernel-Panik auslösen.

llvm-mca

Ein Dienstprogramm, das vorhersagt, wie viele Rechenressourcen der Maschinencode auf verschiedenen CPUs benötigt. Sie schätzt Anweisungen pro Zyklus (IPC) und die Belastung der Hardware, die diese oder jene Anwendung erzeugt.

llvm-mca wurde 2018 im Rahmen des Projekts eingeführt LLVM, das ein universelles System zur Analyse, Transformation und Optimierung von Programmen entwickelt. Es ist bekannt, dass die Autoren von llvm-mca von der Software-Leistungsanalyselösung inspiriert wurden IACA von Intel und versuchte, eine Alternative dazu zu schaffen. Und laut Anwendern ähnelt die Ausgabe des Tools (Markup und Menge) wirklich der IACA – ein Beispiel finden Sie hier. Allerdings akzeptiert llvm-mca nur AT&T-SyntaxUm damit zu arbeiten, müssen Sie also höchstwahrscheinlich Konverter verwenden.

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

Benchmarks für Server unter Linux: eine Auswahl an Open-Source-Tools "Matte. Wall-Street-Modell“ oder Wie man Cloud-Kosten optimiert

Benchmarks für Server unter Linux: eine Auswahl an Open-Source-Tools So sichern Sie Ihr Linux-System: 10 Tipps
Benchmarks für Server unter Linux: eine Auswahl an Open-Source-Tools Risikominimierung: So verlieren Sie Ihre Daten nicht

Benchmarks für Server unter Linux: eine Auswahl an Open-Source-Tools Bücher für diejenigen, die sich bereits mit der Systemadministration beschäftigen oder gerade damit beginnen möchten
Benchmarks für Server unter Linux: eine Auswahl an Open-Source-Tools Auswahl: fünf Bücher und ein Networking-Kurs

Benchmarks für Server unter Linux: eine Auswahl an Open-Source-ToolsWir bei 1cloud.ru bieten einen kostenlosen Service an.DNS-Hosting". Sie können bei uns DNS-Einträge in einem einzigen persönlichen Konto verwalten.

Source: habr.com

Kommentar hinzufügen