[[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/blackbox.png, 64, align=left)]] Immer wieder gesucht werden Programme, die die Leistungsfähigkeit einzelner Komponenten oder die Gesamtleistung eines Rechners messen: [wikipedia:Benchmark_(EDV):Benchmarks]. Dementsprechend werden zwei Kategorien unterschieden: Mikro-Benchmarks und Makro-Benchmarks. Während erstere für sehr spezielle Aufgabenstellungen genutzt werden, orientieren sich Makro-Benchmarks eher am realen Verhalten eines Systems (auch wenn Testergebnisse u.U. nach einzelnen Komponenten gegliedert sind). Diese Seite soll eine Übersicht der unter Linux verfügbaren Programme liefern. Im Abschnitt [#Links Links] finden sich weitere Quellen. = Makro-Benchmarks = == HardInfo == Eigentlich eine Übersicht der verbauten Hardware-Komponenten, enthält das Programm auch ein paar Leistungstests für den Prozessor. Unter [:Lubuntu:] ist es bereits vorinstalliert, ansonsten kann es aus den offiziellen Paketquellen installiert werden. Siehe [:HardInfo:] == Phoronix Text Suite == Die Phoronix Test Suite stellt eine breite Palette an Benchmarks bereit. Homepage: [https://phoronix-test-suite.com] == Linux Test Project == [[Vorlage(Bildunterschrift, ./tuxbench.png, 200, "[https://linux-test-project.github.io/ Linux Test Project] {en}", right)]] === Installation === Folgende Pakete sowie die Kernel-Headers müssen installiert sein: {{{#!vorlage Paketinstallation make git m4 automake autoconf build-essential libaio-dev libattr1-dev libcap-dev autotools-dev linux-headers-generic pkg-config }}} Danach kann der Code von GitHub geklont werden. {{{#!vorlage Befehl git clone https://github.com/linux-test-project/ltp.git }}} [[Vorlage(Fremd, Software, "")]] Dann kann das Programm kompiliert und installiert werden: {{{#!vorlage Befehl cd ltp make autotools sudo ./configure sudo make sudo make install }}} === Start === Das Programm benötigt zum Starten root-Rechte. {{{#!vorlage Befehl sudo /opt/ltp/runltp }}} == Xfbsuite == [sourceforge:fbsuite:Xfbsuite] {en} ist eine Zusammenstellung folgender Kommandozeilen-Programmen: === Installation === {{{#!vorlage Paketinstallation git mono-runtime }}} Man klont das Programm. {{{#!vorlage Befehl git clone https://github.com/petabridge/NBench.git }}} und dient gleichzeitig als Frontend. Die jeweiligen Einzelprogramme sind bereits enthalten. === Installation === Man lädt das Archiv von [sourceforge:fbsuite/files/latest/download:Sourceforge] {dl} herunter und entpackt dies. Danach muss die '''install.sh''' mit root-Rechten ausgeführt werden: {{{#!vorlage Befehl sudo bash ./install.sh }}} [[Vorlage(Fremd, Software)]] == Bonnie++ == [:bonnie++:] wird in einem eigenen [:bonnie++: Artikel] behandelt. == x11perf == x11perf testet die Geschwindigkeit des XServers. === Installation === Folgendes Paket muss installiert sein: {{{#!vorlage Paketinstallation x11-apps }}} === Nutzung === Eine Übersicht der vorhandenen Tests findet sich in der [man:x11perf: Manpage] = weitere Programme = * [https://www.cs.virginia.edu/stream/ stream] {en} (RAM) * [https://icl.cs.utk.edu/llcbench/cachebench.html cachebench] {en} (L1/L2 CPU-Cache) * Perl HDD Benchmark (Festplatte) * X11perf (X11 2D-Performance) * [wikipedia_en:NBench:nbench] (CPU) == Unigine == Die Benchmarks [:Benchmarks/Unigine:Unigine] des Herstellers Unigine Corp. sind auf Grafikkarten spezialisiert. Somit erfährt man, ob der Computer den Anforderungen für aktuelle Spieletitel gerecht wird. == LuxCoreRender == LuxCoreRender ist eine freie physikbasierte Renderengine zum Erstellen fotorealistischer Bilder. === Installation == Man lädt von [https://luxcorerender.org/download/] {dl} entweder die Variante mit oder ohne OpenCL-Unterstützung herunter. == LuxMark == [http://www.luxmark.info/ LuxMark] {en} ist einer der bekanntesten OpenCL-Benchmarks für Grafikkarten und ermittelt anhand des Renderns verschiedener Grafiken eine Punktzahl, welche die Leistung abbildet. Luxmark basiert auf LuxCoreRender. === Installation === Man lädt von der Projektseite das Archiv herunter und entpackt es. [[Vorlage(Fremd, Software)]] = Mikro-Benchmarks = Nachfolgend eine Übersicht spezieller Benchmarks, die sich meistens nur auf einen bestimmten Aspekt beziehen. Die Ausgabe erfolgt in der Regel auf der Kommandozeile, da fast alle der hier genannten Programme auf eine grafische Oberfläche verzichten. Unter System wurden Benchmarks einsortiert, die die Prozessor-Leistung und/oder die Performance des Betriebssystems messen. {{{#!vorlage Tabelle <-7 tablestyle="width: 97%;" rowclass="titel">Mikro-Benchmarks +++ Name System Dateisystem Netzwerk Ubuntu-Paket Projektseite Anmerkung +++ [:bonnie++:] Nein Ja Nein '''bonnie''' (''universe'') [https://www.coker.com.au/bonnie++/ bonnie++] {en} für Massenspeicher +++ [#cpuburn cpuburn] Ja Nein Nein '''cpuburn''' (''universe'') [https://patrickmn.com/projects/cpuburn/ cpuburn] {en} Prozessor-Dauertest +++ dbench Nein Nein Ja '''dbench''' (''universe'') [https://dbench.samba.org/ DBENCH] {en} Dateioperationen im Samba-Netzwerk +++ iozone Nein Ja Nein '''iozone3''' (''universe'') [http://www.iozone.org/ IOzone Filesystem Benchmark] {en} +++ [:iperf:] Nein Nein Ja '''iperf''' (''universe'') [github:esnet/iperf:iperf] {en} Geschwindigkeit zwischen zwei Rechnern. Alternative: [:nttcp:] +++ lbench Ja Nein Nein (Fremdpaket) [https://www.kornelix.net/lbench/lbench.html Lbench] {en} Einfacher Multithread-Benchmark mit GUI +++ lmbench Ja Ja Ja '''lmbench''' (''multiverse'') [http://www.bitmover.com/lmbench/whatis_lmbench.html LMbench] {en} +++ namebench Nein Nein Ja '''namebench''' (''universe'') [github:google/namebench:namebench] {en} DNS Benchmark +++ nbench Ja Nein Nein - [https://www.math.utah.edu/~mayer/linux/bmark.html nbench] {en} +++ netperf Nein Nein Ja '''netperf''' (''multiverse'') [http://www.netperf.org/netperf/NetperfPage.html Netperf] {en} TCP und UDP via BSD Sockets (IPv4 und IPv6) +++ [:nttcp:] Nein Nein Ja '''nttcp''' (''multiverse'') [http://63.196.71.246/~phil/net/ttcp/ ttcp/nttcp/nuttcp] {en} siehe auch [:iperf:] +++ pipebench Ja Nein Nein '''pipebench''' (''universe'') [http://www.habets.pp.se/synscan/programs.php?prog=pipebench pipebench] {en} Geschwindigkeitstest für `stdin/stdout` +++ renderbench Ja Nein Nein '''render-bench''' (''universe'') - Kombinationstest für Prozessor und Grafikkarte +++ [:Siege:] Nein Nein Ja '''siege''' [http://www.joedog.org/index/siege-home Siege] {en} Leistungs- und Regressionstest für HTTP/HTTPS +++ stress Ja Ja Nein '''stress''' (''universe'') [http://people.seas.harvard.edu/~apw/stress/ stress] {en} Lastgenerator für die Kommandozeile +++ sysbench Ja Ja Ja '''sysbench''' (''universe'') [launchpad:sysbench:] {en} faktisch ein Datenbank-Benchmark für [:MySQL:] +++ sysstat Ja Ja Ja '''sysstat''' (''universe'') [http://sebastien.godard.pagesperso-orange.fr/ Sysstat] {en} Umfangreiche Test- und Monitoring-Suite +++ tiobench Nein Ja Nein '''tiobench''' (''universe'') [sourceforge:tiobench:] {en} fully-threaded I/O Benchmark +++ [:vmstat:] Ja Ja Nein '''procps''' [sourceforge2:procps:] {en} erste Analyse von Engpässen }}} == cpuburn == [https://patrickmn.com/projects/cpuburn/ cpuburn] {en} ist ein Benchmark für den Prozessor. === Installation == ==== Ubuntu 16.04 ==== Unter Ubuntu 16.04 ist das Paket '''cpuburn''' in den Paketquellen enthalten. Es kann mit {{{#!vorlage Paketinstallation cpuburn }}} installiert werden. ==== Ubuntu 18.04 und neuer ==== Unter 18.04 ist das Paket '''cpuburn''' nicht mehr in den Ubuntu-Paketquellen vorhanden. Man lädt von der [https://patrickmn.com/projects/cpuburn/ Website] {en} {dl} das passende Archiv für die eigene Architektur und entpackt dieses. [[Vorlage(Fremd, Software)]] === Nutzung === cpuburn kann mit {{{#!vorlage Befehl cpuburn }}} gestartet werden. Hat man die manuelle Installation ohne Paketquellen durchgeführt, so lautet der befehl {{{#!vorlage Befehl ./cpuburn }}} Diese muss im Verzeichnis des entpackten Archivs ausgeführt werden. Ohne zusätzliche Optionen werden alle Kerne ausgelastet, möchte man nur eine bestimmte Anzahl auslasten, so kann man die mit folgendem Befehl tun (Im Beispiel werden 2 Kerne ausgelastet): {{{#!vorlage Befehl ./cpuburn -n 2 }}} Zusätzlich kann man sich die Laufzeit anzeigen lassen. Dies geht mit {{{#!vorlage befehl ./cpuburn -u 2 }}} In diesem Fall wird die Zeit alle 2 Sekunden aktualisiert. = Sonstiges = == OpenSSL == Um ein System auf die Schnelle unter Last zu setzen (konkret den Prozessor), kann man einfach folgenden Befehl nutzen: {{{#!vorlage Befehl openssl speed }}} Der Test wird nach Durchlauf automatisch beendet, kann ansonsten aber jederzeit mit [[Vorlage(Tasten, strg+c)]] abgebrochen werden. Da bei Mehrkern-Prozessoren nur ein Kern voll ausgelastet wird, muss hier ein etwas anderer Weg gegangen werden, um alle Kerne eines Mehrkernsystem auszulasten bzw. diesen Test vorzeitig beenden zu können. Hier bietet sich der Einsatz von [:schedutils#taskset:taskset] an, mit dessen Hilfe ein Prozess gezielt einer CPU zugewiesen werden kann. Die folgenden Befehle starten den Openssl-Test für eine Doppelkern-CPU: {{{#!vorlage Befehl sudo taskset -c 1 openssl speed & sudo taskset -c 2 openssl speed & }}} Über die beiden PIDs, die beim Start der Prozesse zurück gegeben werden, können bei Prozesse mit [:Shell/kill:kill] wieder gestoppt werden. Um das Verhalten des Systems während des Testlaufs von '''openssl''' zu beobachten, öffnet man sich zwei weitere Terminalfenster und verwendet dort folgende Befehle (siehe [:watch:]): * Temperaturüberwachung: {{{#!vorlage Befehl watch -n 2 acpi -V }}} * Prozessortakt: {{{#!vorlage Befehl watch -n 5 cpufreq-info }}} Da die Pakete '''acpi''' und '''cpufrequtils''' nicht vorinstalliert sind, müssen diese nachinstalliert werden: {{{#!vorlage Paketinstallation acpi, universe cpufrequtils, universe }}} == GLXgears == Um es nochmal in aller Deutlichkeit zu erwähnen: GLXgears ist __kein__ Benchmark! Die FPS hängen von der horizontalen Synchronisation des Monitors ab. Hat man beispielsweise einen Röhrenmonitor mit 120 Hz wird ein Wert nahe 120Hz angezeigt, hat der Monitor aber nur 60 Hz liegt der Wert bei 60 Hz bei gleicher Grafikkarte. == bc == Als einfacher Benchmark kann die Dauer einer aufwändigen Rechenoperation mit dem [:Taschenrechner#bc: Taschenrechner-Programm '''bc'''] gemessen werden, z.B. die Berechnung der ersten fünftausend Nachkommastellen der Kreiszahl Pi: {{{#!vorlage Befehl time echo "scale=5000; 4*a(1)" | bc -l }}} Mit dem vorangestellten [:time:]-Befehl wird die Ausführungszeit des nachfolgenden Befehls gemessen. Mit [:echo:] werden zwei durch Semikolon getrennte Anweisungen per Pipe-Operator an `bc` übergeben: Zuerst wird die Anzahl der zu berechnenden Nachkommastellen auf `5000` gesetzt und dann der vierfache Wert der Arkustangens-Funktion für den Wert `1` berechnet, was dem Wert von Pi entspricht. Das Programm `bc` selbst wird mit der Option `-l` aufgerufen, um eine Bibliothek mit mathematischen Funktionen (u.a. der Arkustanges-Funktion `a()`) zu laden. Der Vorteil dieser Methode ist es, dass `bc` auf den meisten Linux-Systemen vorinstalliert ist, und die Befehle `time` und `echo` in der [:Shell:] eingebaut sind. Außerdem kann die Laufzeit dieses Benchmarks durch die Wahl der Anzahl der Nachkommastellen gesteuert werden. = Links = [[Bild(./stress-ng_logo.png, 96, align=right)]] * [https://linux-test-project.github.io/ Linux Test Project] {en} * [sourceforge:ltp:LTP auf SourceForge] * [sourceforge2:lbs:Linux Benchmark Suite] {en} - Übersicht diverser Benchmarks * [https://kernel.ubuntu.com/~cking/stress-ng/ stress-ng] {en} - Kommandozeilenwerkzeug * [https://www.stresslinux.org/sl/ stresslinux] {en} - eigene Distribution * [archwiki:Stress_Test:Stress Test] {en} - Arch Wiki * weitere Prozessor-Tests: * [https://www.mersenne.org/ prime95] {en} * [https://www.cpuburnin.com/ CPU Burn-in] {en} - plattformübergreifendes Testprogramm * [:Festplatten-Geschwindigkeitstest:] {Übersicht} Übersichtsartikel # tag: Benchmark, Hardware, System, Übersicht