1934349

So testen Sie die Leistung Ihrer Hardware unter Linux

08.06.2016 | 09:09 Uhr |

Wie schnell sind Komponenten wie CPU, RAM und Datenträger wirklich? Benchmark-Werkzeuge informieren nicht nur zuverlässig über die Leistung, sondern entlarven auch Stabilitätsprobleme unter Last.

Benchmark-Programme erzeugen künstlich hohe Auslastung für ausgewählte Systemkomponenten und liefern einheitliche Messwerte zum Leistungsvergleich zwischen PCs und Servern. Von besonderem Interesse sind diese Infos vor und nach Änderungen der Systemkonfiguration oder der Hardware. Zudem eignen sich solche Stresstests, um die Stabilität eines Systems zu ermitteln. 

Sysbench-Suite: Diese Benchmark-Sammlung eignet sich nicht nur für Datenbank-Server. Hier lief gerade der CPU-Benchmark und zeigt jetzt die benötigte Zeit in Sekunden an.
Vergrößern Sysbench-Suite: Diese Benchmark-Sammlung eignet sich nicht nur für Datenbank-Server. Hier lief gerade der CPU-Benchmark und zeigt jetzt die benötigte Zeit in Sekunden an.

Moderne CPUs von Intel und AMD halten die Leistungsaufnahme mit integrierten Stromsparfunktionen möglichst niedrig und fahren die Taktfrequenz im Leerlauf selbständig zurück. Unter Last hingegen muss sehr schnell erhebliche thermische Verlustleistung über kleinste Flächen abgeführt werden. Gelingt dies nicht und wird der spezifizierte Wert des TDP (Thermal Design Power) überschritten, schaltet sich das System ab, oder es kommt zu Abstürzen. Gerade leistungsfähige, kompakte Ultrabooks gehen mit ihrer Dimensionierung von Kühlkörpern und Lüftern ans Limit. Gezielte Stresstests sind deshalb auch immer ein Mittel zur Fehlersuche bei instabilen Systemen.

Benchmark-Tools für Linux gibt es Dutzende für verschiedene Ansprüche und in unterschiedlichen Formen – mal mit, mal ohne GUI. Hier geht um die handlichen Test-Suiten von Sysbench und Bonnie++. Diese beiden laufen mit wenig Aufwand unter allen Linux-Distributionen, haben sich in ihrem jeweiligen Aufgabenbereich etabliert und liefern allgemeinverständliche und gut zu vergleichende Ergebnisse.

Steam-OS: Spiele-Volldampf auf Linux-Basis

CPU-Benchmarks und Prozessorlast

Der Linux-Kernel schätzt die Leistung der CPU beim Booten zur Kalibrierung interner Warteschleifen mit der Pseudo-Einheit „Bogo MIPS“ ein. Dies ist eine nicht ganz ernstgemeinte Wortschöpfung Linus Torvalds, die sich aus „Bogus“ (unecht) und MIPS (Millionen Instruktionen pro Sekunde“) zusammensetzt.

Dieser Wert lässt sich im Terminal unter anderem mit dem Befehl

dmesg | grep bogoMIPS

abfragen. Bogo MIPS sind aber kein Maß für die Rechengeschwindigkeit einer CPU, sondern nur ein Indikator für dessen ungefähre Taktfrequenz.

Zum Vergleich zweier Prozessoren müssen diese eine tatsächliche Aufgabe bewältigen. Dafür eignen sich die Werkzeuge aus dem Paket „sysbench“, das in allen verbreiteten Distributionen zur Verfügung steht. Es handelt sich um eine Benchmark-Sammlung für CPU, Thread-Timer, Dateisystem, Speicher und simulierte My-SQL-Abfragen. Eine Besonderheit ist, dass Sysbench zwar spezielle Leistungstests für Datenbankserver auf Lager hat, aber auch einfach CPU-Tests mit mehreren Threads starten kann. In Debian/Ubuntu wird es im Terminal mit

sudo apt-get install sysbench

installiert. Einen kurzen CPU-Test zur Primzahlberechnung mit vier Threads starten Sie mit diesem Befehl

sysbench --test=cpu --numthreads=4 run

In der Ausgabe ist der Wert „total time“ von Bedeutung, der die Zeit zur Berechnung von 100 000 Primzahlen in Sekunden angibt. Bei gleichen Parametern eignet sich dieser Wert gut zum Vergleich zwischen Systemen. Soll für Stabilitätstests nur eine möglichst hohe CPU-Last erzeugt werden, ist Sysbench ebenfalls das passende Werkzeug. Das Kommando 

sysbench --test=cpu --cpu-maxprime=-1 –num-threads=4
Durchsatzraten von Datenträger-Zugriffen: Bonnie++ führt eine Reihe von Lese- und Schreiboperationen aus. Das Ergebnis zeigt die Messwerte (markierter Bereich).
Vergrößern Durchsatzraten von Datenträger-Zugriffen: Bonnie++ führt eine Reihe von Lese- und Schreiboperationen aus. Das Ergebnis zeigt die Messwerte (markierter Bereich).

startet die Berechnung von Primzahlen in vier Threads, bis das Programm mit Strg-C manuell unterbrochen wird. Damit die CPU ausreichend beschäftigt wird, sollte die Zahl der Threads im Parameter „-num-threads=[Wert]“ mindestens der Anzahl der physikalischen Prozessorkerne entsprechen.

Mit Hilfe des Tools Sensors können Sie dabei in einem anderen Terminal-Fenster die CPU-Temperatur durch den wiederholten Aufruf von sensors im Auge behalten. Bei Debian/Ubuntu steht Sensors im Paket „lm-sensors“ bereit, bei Open Suse hat es den Paketnamen „sensors“ und Fedora kennt es als „lm_sensors“.

Praktische Hardware-Tipps für Linux

Durchsatzraten des Speichers ermitteln

Das Programm Sysbench liefert auch einen Test für die Durchsatzraten des Speicher-Subsystems. Dazu reserviert der Test einen Puffer im RAM, der dann sequenziell beschrieben und ausgelesen wird. Mit dem Aufruf

sysbench --test=memory --memoryblock-size=1G run

weisen Sie Sysbench an, 1 GB RAM zu reservieren. In der Standardeinstellung testet Sysbench den Durchsatz von 100 GB. Der Messwert unter „Operations performed“ zeigt dann die Transferrate in MB pro Sekunde.

Bonnie++: Leistungstest für Datenträger

Sysbench enthält zwar auch ein Testmodul für Lese-Schreib-Operationen, kann dabei aber nicht gezielt einen Datenträger unter die Lupe nehmen. Dafür ist das Werkzeug Bonnie++ besser geeignet, das ebenfalls in allen großen Distributionen verfügbar ist. Es testet den Datendurchsatz bei Lese- und Schreiboperationen jeweils sequenziell und mit zufälligen Blöcken. Nach der Installation, die bei Debian/Ubuntu mit sudo apt-get install bonnie++ erfolgt, starten Sie einen Test abhängig von der Größe des RAM und des gewünschten Verzeichnisses (für temporäre Dateien) etwa mit diesem Befehl:

/usr/sbin/bonnie++ -r 4096 -d / home/[benutzer]
HTML-Tabelle: Bonnie++ hat das Script „bon_csv2html“ dabei, das die Ergebnisse in diese Tabelle umwandelt.
Vergrößern HTML-Tabelle: Bonnie++ hat das Script „bon_csv2html“ dabei, das die Ergebnisse in diese Tabelle umwandelt.

Die Angabe „4096“ ist die Größe des physischen RAMs in MB, hier 4 GB. Diese Angabe ist hilfreich, damit der Disk-Benchmark die Dateigrößen groß genug wählt, damit diese nicht in den Dateisystem-Cache des Kernels passen. Denn das würde die Ergebnisse stark verfälschen. Standardmäßig arbeitet Bonnie++ mit Testdateien von der doppelten Größe des angegebenen RAMs, hier also 8 GB. Hinter dem Parameter „-d“ erfolgt die Pfadangabe, wo Bonnie++ seine temporären Daten ablegen soll. Es wird die Durchsatzrate des Datenträgers getestet, auf dem dieses Verzeichnis liegt. Wenn Sie den Test nicht als root starten, benötigen Sie dort natürlich Schreibrechte, und es muss genügend freier Platz verfügbar sein. Der Test dauert einige Minuten, und die Ausgabe erfolgt tabellarisch auf der Befehlszeile. Eine CSV-Tabelle produzieren Sie mit dem angehängten Parameter „-q“ wie folgt:

/usr/sbin/bonnie++ -r 4096 -d / home/[benutzer] -q >>messwerte.csv

Die resultierende Datei wandeln Sie mit dem Befehl

bon_csv2html messung.csv >messung.html

in eine im Browser darstellbare HTML-Datei um.

Die Pluszeichen bei einigen Messwerten bedeuten, dass Bonnie nicht genug Messungen für einen verlässlichen Mittelwert gesammelt hat. Die Anzahl der Messungen lässt sich mit der Zahl der temporären Dateien mit dem Parameter „-n [Faktor]“ um den Faktor 1024 erhöhen.

Grafikkarten im Stresstest

Noch vor zehn Jahren war die Frage, wie leistungsstark die Grafikkarte oder der Grafikchip unter Linux ist, eher von theoretischem Interesse. Denn Spiele mit anspruchsvoller 3D-Grafik waren Mangelware. Windows dominierte mit DirectX die Spieleszene. Die wenigen Spieletitel für Linux waren schon mit Open GL und bescheidenen Grafikkarten zufrieden, und verfügbare Linux-Treiber für Open-GL-fähige Karten wollten sowieso nur einen Bruchteil der 3D-Fähigkeiten nutzen. Dank Valves Gaming-Plattform Steam ist heute auch Linux auf Gaming-PCs verbreitet . Auf Steam sind nicht weniger als 1700 Spiele verfügbar, die unter Linux laufen und eine Open-GL-Grafikkarte verlangen. Ambitionierten Spielern geht es bei der Zusammenstellung eines PCs und beim Aufrüsten um jedes zusätzliche Frame. Dabei spielen nicht nur die Leistung der CPU und die der Grafikkarte eine Rolle – mitentscheidend sind auch die Treiber. Das Update eines proprietären Grafiktreibers oder der Wechsel auf neuere Ausgabe der Mesa-Bibliothek, die Open GL auf den Linux-Desktop bringt, kann sich deutlich auf die Grafikleistung auswirken.

Systematische Grafik-Benchmarks zeigen exakt, wie sich ein System in Sachen 2D-und 3D-Darstellung schlägt. Der Vorteil von speziellen Benchmark-Programmen gegenüber Spiele-Benchmarks ist die Vergleichbarkeit mit anderen Systemen, ohne ein umfangrei-ches Spiel installieren zu müssen. Unter Windows gibt es zahlreiche Benchmarks, die auch Grafikboliden an den Rand ihrer Leistungsfähigkeit bringen. Unter Linux ist die Auswahl kleiner – aber es geht auch keineswegs mehr so schlicht zu wie beim Urahn glxgears.

GL Mark 2: Handlicher Benchmark

GL Mark 2: Das Open-Source-Programm stammt von der Linaro-Gruppe, der unter anderem Canonical angehört. Der Benchmark liegt deshalb auch in den Paketquellen Ubuntus.
Vergrößern GL Mark 2: Das Open-Source-Programm stammt von der Linaro-Gruppe, der unter anderem Canonical angehört. Der Benchmark liegt deshalb auch in den Paketquellen Ubuntus.

Ein kompaktes Benchmark-Programm im Stil von glxgears, allerdings mit einer großen Palette aufwendiger Einzeltests, die systematisch Open-GL-Fähigkeiten der Grafikkarte unter die Lupe nimmt, ist GL Mark 2 von Linaro. Das Open-Source-Programm findet sich in den Standardpaketquellen von Ubuntu sowie Fedora und ist in den beiden Distributionen schnell installiert – in Ubuntu mit diesem Befehl:

sudo apt-get install glmark2

Der Aufruf erfolgt in der Kommandozeile mitglmark2, woraufhin nacheinander Einzeltests zu Texturen, Buffer und anderen Open-GL-Details in einer definierten Fenstergröße ablaufen. Nach dem Test, der etwa fünf Minuten dauert, zeigt GL Mark 2 eine ermittelte Punktzahl ein, die als handlicher Vergleichswert zu anderen Systemen oder zu Tests nach einer geänderten Hardwarekonfiguration dient.

Tipp: Die besten Linux-Spiele für Steam und Co.

Gputest: Furmark und Tessmark für Linux

Gputest: Das plattformübergreifende Tool liefert die von Windows bekannten Benchmarks „Furmark“ (hier im Bild) und „Tessmark“, die sich auch für schwächere GPUs eignen.
Vergrößern Gputest: Das plattformübergreifende Tool liefert die von Windows bekannten Benchmarks „Furmark“ (hier im Bild) und „Tessmark“, die sich auch für schwächere GPUs eignen.

Die Testsammlung Gputest 0.7.0 von Geeks3d ist ein plattformübergreifendes Benchmark-Programm, das auch die von Windows bekannten Benchmarks Furmark und Tessmark unter Linux präsentiert. Diese Programme liegen als vorkompilierte universelle Binary für alle Linux-Distributionen vor. Auch wenn die Beschreibung auf der Downloadseite nur Ubuntu und Open Suse erwähnt, so laufen die Benchmarks unter allen Linux-Systemen mit 64 Bit. Gputest steht als proprietäre Freeware zum Download bereit. Die ZIP-Datei legt beim Entpacken nach

unzip GpuTest_Linux_x64_0.7.0.zip

das neue Verzeichnis „GpuTest_Linux_x64_0.7.0“ an, in dem die Programmdateien liegen. Ein grafisches Menü bietet die Auswahl der Tests. Das Menü ist in Python geschrieben und verlangt noch die Bibliothek „python-tk“, die in Debian/Ubuntu mit dem Befehl

sudo apt-get install python-tk

zu installieren ist. Diese Bibliothek ist essenziell und auch unter allen anderen verbreiteten Distributionen verfügbar. Das Menü kann dann aus dem Verzeichnis des entpackten Gputest mit

python gputest_gui.py

gestartet werden. Die Benchmarks testen die Grafikleistung unter von Open GL 2.1, 3 und 4. Nach dem Start eines der Tests zeigt der Fenstertitel die Framerate (FPS). Nach einer Laufzeit von 60 Sekunden zeigt jeder Test seine Punktzahl als Vergleichswert an. Bis auf den harmlosen Test „Furmark“ verlangen alle Benchmarks nach einem GPU-Boliden von AMD oder Nvidia.

Unigine: Schöner Stress

Wie viel Details sollen es sein? Die aufwendigen Benchmarks von Unigine, hier „Heaven“, erlauben vor dem Start eine manuelle Einstellung der Parameter und Auflösung.
Vergrößern Wie viel Details sollen es sein? Die aufwendigen Benchmarks von Unigine, hier „Heaven“, erlauben vor dem Start eine manuelle Einstellung der Parameter und Auflösung.

Unigine ist eine Grafikengine der russischen Softwareschmiede Unigine Corp., die das Framework ursprünglich für aufwendige 3D-Visualisierungen im industriellen Bereich entwickelte. Wegen der vergleichsweise hohen Lizenzkosten von 300.000 US-Dollar ist die proprietäre Unigine als Entwicklungsplattform in Spielen seltener zu sehen und das hauseigene „Oilrush“ ist bisher der bekannteste Titel geblieben. Was es aber gibt, sind die Benchmark-Tests, die gleichzeitig die Möglichkeiten der Unigine demonstrieren sollen. Und diese können sich sehen lassen – vorausgesetzt, die Grafikkarte im Rechner gehört mindestens zur gehobenen Mittelklasse.

Aktuell gibt es mit Unigine zwei Benchmarks für Linux, die Open GL 4.0 weitgehend ausschöpfen und jede Grafikkarte ins Schwitzen bringen – das ausufernde „Valley“ und das detailversessene „Heaven“. Nur Rechner mit Grafikkarten ab einem GB RAM und einer GPU ab der Nvidia Serie 8 oder AMD Radeon R700 kommen als Probanden in Frage, auf weniger leistungsfähiger Hardware sind diese Benchmarks frustrierend langsam. Die Unigine rendert verschiedene Lichtverhältnisse, dynamische Wasseroberflächen und Wolkenformationen. Damit eine ältere GPU nicht gleich passen muss und Frames nur mehr im Sekundenrhythmus ausgibt, haben die Benchmark-Programme, die als universelle Binary für alle Linux-Distributionen vorliegen, jeweils noch ein Menü zur Anpassung der Auflösung und Detailtiefe. Valley liegt als Download per Bittorrent-Protokoll unter https://unigine.com/en/products/benchmar ks/valley (395 MB), Heaven unter https://unigine.com/en/products/benchmarks/heaven (273 MB). Zum Download ist ein Bittorrent-Client nötig; die resultierende Datei hat die Endung „.run“ und ist eine ausführbare Binärdatei, die sich beim Aufruf

sh [Dateiname].run

im Terminal zunächst in einen neuen Unterordner entpackt. Der eigentliche Benchmark lässt sich dort mit./heaven beziehungsweise./valley starten.

0 Kommentare zu diesem Artikel
1934349