Raspberry Pi: Benchmarks

In unseren Beiträgen verwenden wir für den Vergleich verschiedene Benchmarks. Die Benchmarks erlauben eine Bewertung unterschiedlicher Faktoren wie Geschwindigkeit der CPU, RAM, SD-Karte oder Netzwerk. Hier erfährst du, wie du deinen Raspberry Pi selbst messen und vergleichen kannst.

Übersicht der Benchmarks

Einen ersten Überblick über die Leistung des Raspberry Pi gibt uns der Test sysbench. Diese ist in den offiziellen Repositories verfügbar und kann CPU und RAM gut lesen und schnell ermitteln.

Die Geschwindigkeiten im sequentiellen Lesen und Schreiben ermitteln wir mit dem Werkzeug dd. Es muss nicht installiert werden, weil es Bestandteil des Systems ist.

Mit Unixbench setzen wir einen Benchmark für unixartige Systeme ein. Dieser ermittelt nicht die Geschwindigkeiten von CPU oder RAM, sondern des Systems – inkl. Betriebssystem, Bibliotheken und Compiler.

Das Tool iPerf erlaubt die Messung von Netzwerkverbindungen und damit die Anbindung des Raspberry Pi.

Den Stromverbrauch messen wir mit einem Energiekostenmessgerät. Wir lesen den Wert nach dem Hochfahren und ruhigen Betrieb ab, und unter voller Last.

Die CPU Temperatur lesen wir nach dem gleichen Schema ab – unter Last und ohne Last. Wie das funktioniert erfährst du in Raspberry Pi: CPU-Temperatur auslesen.

Sysbench – CPU und RAM

Sysbench kann durch Suche der Primezahlen oder Schreiben in den RAM die Geschwindigkeit zwei wesentlicher Komponenten des Raspberry Pi ermitteln. Um Sysbench zu installieren und auszuführen, gehe wie folgt vor.

sudo apt-get install sysbench

CPU Benchmark auf einem Kern und mehreren Kernen durch Erhöhung der Anzahl Threads

sysbench --num-threads=1 --test=cpu --cpu-max-prime=10000 run
sysbench --num-threads=4 --test=cpu --cpu-max-prime=10000 run

Die Geschwindigkeit des RAM beim Schreiben können wir mit diesem Befehl ermitteln. Dabei werden 10 GB in den Speicher je 10 MB pro Block geschrieben. Auch diese Ausführung verteilen wir auf 4 Threads.

sysbench --num-threads=4 --test=memory --memory-block-size=1M --memory-total-size=10G run

dd – das sequentielle Lesen und Schreiben

Mit dem Kommando dd können wir blockorientiert Dateien kopieren bzw. Lesen. So kann die Geschwindigkeit im sequenzielle Lesen und Schreiben ermittelt werden (durch Relation zur Laufzeit).

Schreiben

dd if=/dev/zero of=./test.file bs=1M count=1000 oflag=direct

Lesen

dd if=./test.file of=/dev/null bs=1M count=1000

Quelle: https://www.webhosterwissen.de/know-how/server/server-benchmark/

Unixbench – das System

Das Tool Unixbench ermittelt eine Vielzahl von Werten zur Geschwindigkeit des gesamten Systems. Es werden dabei nicht ausschließlich einzelne Komponenten gemessen. Für die Vorbereitung und Installation gehe wie folgt vor.

sudo apt-get update
sudo apt-get install gcc libgl1-mesa-dev libxext-dev perl perl-modules make unzip
wget https://github.com/kdlucas/byte-unixbench/archive/master.zip
unzip master.zip
cd byte-unixbench-master/UnixBench/

Der Benchmark kann mit ./Run gestartet werden und dauert je nach System ca. eine halbe Stunde.

./Run

Quelle: https://goneuland.de/debian-unixbench-installieren/

iPerf – die Netzwerkverbindung

Mit der Client-Server-Anwendung iPerf kann die theoretische Netzwerkanbindung zwischen zwei Geräten ermittelt werden. Die Verbindung kann dabei immer nur so gut sein wie das schwächste Glied. Um den Test auszuführen, muss die Anwendung auf zwei Systemen heruntergeladen und gestartet werden.

sudo apt-get install iperf3

Anschließend muss auf dem Server

iperf3 -s

ausgeführt werden. Auf dem Client müsst ihr nun, nachdem der Server gestartet wurde, die Zieladresse des Servers mit angeben.

iperf -c 192.168.178.3

Auch für Windows könnt ihr euch iperf3 herunterladen und über die Kommandozeile ausführen.

Quelle: http://www.nwlab.net/art/iperf/

Stromverbrauch und Temperatur

Den Stromverbrauch und die Temperatur können im Ruhezustand einfach ausgelesen werden. Welche Werkzeuge dazu nötig sind stehen oben in der Übersicht der Benchmarks.

sudo apt-get install stress

Um Last zu erzeugen nutzen wir einen Stresstest. Den Takt der CPU und die Temperatur können gleichzeitig über eine Schleife ausgegeben werden.

while true; do vcgencmd measure_clock arm; vcgencmd measure_temp; sleep 10; done& stress -c 4 -t 900s

Quelle: https://core-electronics.com.au/tutorials/stress-testing-your-raspberry-pi.html