Raspberry Pi Geschwindigkeit messen: Mit diesen Benchmarks testest du, wie schnell dein Pi ist!

Als Video ansehen
Bereitgestellt über YouTube

Raspberry Pi Geschwindigkeit messen: Mit diesen Benchmarks testest du, wie schnell dein Pi ist!

Wie schnell ist dein Raspberry Pi? Dies lässt sich mit sogenannten Benchmarks herausfinden: Ein definierter Test ermittelt die Geschwindigkeit und kann genutzt werden, um den Pi mit anderen Geräten zu vergleichen. In diesem Beitrag stellen wir dir mehrere Möglichkeiten vor, wie du die Geschwindigkeit eines Raspberry Pi messen kannst.

Grundsätzlich kann man zwischen Benchmark-Tools bzw. Paketen und einzelnen Tests unterscheiden. PassMark PerformanceTest testet den Prozessor und Arbeitsspeicher. Der Vorteil hierbei: Es werden nicht nur nackte Messwerte ausgegeben, die der Nutzer selbst verstehen muss, um sie zu bewerten. Sondern es wird ein Score erzeugt, der sich leicht mit anderen Geräten vergleichen lässt – etwa dem Prozessor vom eigenen Computer. Ähnlich funktioniert auch Geekbench.

Darüber hinaus lassen sich auch einzelne Tests eigenständig durchführen, einige sogar mit Boardmitteln. Beispielsweise kann das Standard-Linuxprogramm dd die Schreib- und Leserate von Datenträgern ermitteln.

Benchmark-Tools: Speicher und CPU testen

PassMark PerformanceTest

PassMark ist bekannt von Ihrer Benchmarkseite cpubenchmark.net. Dort kann man Benchmarks verschiedener Geräte durchführen, hauptsächlich Prozessoren. Die Ergebnisse sind für jeden einsehbar. Wir laden zunächst die PerformanceTest Software herunter. Für unseren Raspberry Pi wird PerformanceTest Linux ARM 32-bit benötigt. Sofern ihr einen Raspberry Pi 4 besitzt der bereits mit einem 64 Bit Betriebssystem läuft, könnt ihr die 64 Bit Version nehmen. Dies macht aber nur Sinn, wenn die größte Version mit 8 GB Arbeitsspeicher genutzt wird.

Ihr könnt das ZIP-Archiv manuell auf den Raspberry Pi übertragen, etwa per SFTP. Besitzt der Pi eine Internetverbindung, ist der Download per wget am einfachsten. Es folgt das Entpacken des ZIP-Archives mit unzip:

wget https://www.passmark.com/downloads/pt_linux_arm32.zip
unzip pt_linux_arm32.zip

Im gleichen Verzeichnis gibt es nun eine ausführbare Datei namens pt_linux_arm32. Bevor wir diese starten, müssen wir eine Abhängigkeit installieren, ohne die das Programm nicht startet:

sudo apt install libncurses5

Nachdem die Installation mit y bestätigt wurde, können wir das Benchmark-Programm öffnen:

./PerformanceTest/pt_linux_arm32

Auf 64 Bit Systemen kann man einfach 32 durch 64 ersetzen

wget https://www.passmark.com/downloads/pt_linux_arm64.zip
unzip pt_linux_arm64.zip
./PerformanceTest/pt_linux_arm64

Es öffnet sich der Startbildschirm. Er zeigt Informationen zu unserem System an und ermöglicht das Starten beider Tests:

Damit die Ergebnisse aussagekräftig sind, sollte sich der Raspberry Pi im Leerlauf befinden. Das heißt: Alle Dienste stoppen und falls eine grafische Oberfläche installiert ist, auch dort sämtliche Anwendungen schließen. Im optimalsten Falle führt man den Test auf einem frisch aufgesetzten Pi aus.

Durch drücken von A können wir alle Tests starten, also sowohl Prozessor- als auch Arbeitsspeicher-Tests. Dies dauert einige Minuten. Auf einem Raspberry Pi 4 B mit 4 GB Arbeitsspeicher wurden beide Benchmark-Tests nach ca. 4 Minuten abgeschlossen. Sobald dies der Fall ist, sehen wir bei CPU Mark und Memory Mark einen Zahlenwert, statt dem Platzhalter Incomplete:

Wer möchte, kann mit Y für Yes einwilligen, sein Testergebnis auf cpubenchmarks.net hochzuladen. Wenige Sekunden später erscheint ein Link auf der Konsole, Beispiel:

Results submitted: https://www.passmark.com/baselines/V10/display.php?id=500454920046

Das Ergebnisfenster in der Konsole des Raspberry Pi können wir übrigens mit der ESC-Taste oder STRG + C schließen. Der Ergebnis-Link zeigt uns die Daten und Ergebnisse der Messung nochmals an. Primär geht es aber darum, dass die Messwerte in die öffentliche Datenbank einfließen. Sucht man nach dem Prozessor des Raspberry Pi – Im Falle des 4B ist das ein ARM Cortex-A72 – sehen wir neben den Daten auf der rechten Seite den Durchschnittswert der Messergebnisse:

Benchmark-Ergebnisse deuten und vergleichen

Der Pi4B Prozessor hat 877 Punkte im Benchmark erreicht, im Single-Thread Benchmark immerhin noch 633. Die Seite berechnet hier aus allen Messungen einen Durchschnittswert. Wichtig ist auch die Anzahl der Tests, die wir neben Samples erkennen können. Bisher haben lediglich drei Nutzer einen Benchmark erstellt und übermittelt. Dementsprechend ist ein solcher Durchschnittswert natürlich weniger aussagekräftig, wie wenn z.B. 100 Messergebnisse vorliegen würden.

Dass dieser Wert von unserem eigenen gemessenen etwas abweicht, ist normal. Kernel- und Betriebssystemupdates können beispielsweise zu Leistungsverbesserungen führen – oder manchmal sogar zu Verschlechterungen, wenn wir uns an die Sicherheitslücken wie Spectre oder Meltdown erinnern. Deren Behebung reduzierte die Leistung vor allem bei vielen Intel-Prozessoren deutlich. Durch solche Einflüsse wird sich auch der eigene Wert verändern, wenn man den Test einige Zeit später erneut durchführt. Sorgen sollte man sich nur dann machen, wenn es zu größeren Abweichungen kommt.

In den Testergebnissen sehen wir zwar die Rohwerte. So schafft der Pi beispielsweise 1 Million Primzahlen pro Sekunde zu berechnen, oder über 3.500 Millionen ganzzahlige Rechenoperationen. Diese teils sehr unterschiedlichen Disziplinen zu vergleichen ist mühsam und macht nur dann Sinn, wenn man einen besonderen Fokus auf einzelne Operationen legt, wie etwa bei wissenschaftlichen Berechnungen.

Ansonsten ist es einfacher und zielführender, den Benchmark-Wert zu vergleichen. Im Folgenden vergleichen wir beispielhaft von links nach rechts einen etwas älteren AMD-Prozessor für Büro-Computer mit nur 2 Kernen, gefolgt vom A72 unseres Raspberry Pi 4 und zum Schluss einen etwas aktuelleren Intel 4-Kern Prozessor, der sich für Office-PCs und kleinere Arbeitsstationen eignet.

Offensichtlich ist der PI hier deutlich langsamer: Selbst der ältere 2-Kern AMD erreicht ein 5x schnelleres Ergebnis. Der 4-Kern Intel-Prozessor ist sogar rund 9 Mal schneller.

Geekbench

Eine recht junge Alternative ist Geekbench, zumindest was den Raspberry Pi angeht: Die ARM-Version ist erst seit Anfang 2021 verfügbar und befindet sich im Vorschau-Stadium. Grundsätzlich ist das Funktionsprinzip gleich: Eine Reihe von Tests ergeben einen Score für den Prozessor. Geekbench testet hierbei sowohl die Einzelkern- als auch die Mehrkernleistung. Allerdings ist die Skala eine andere. Die Werte von PassMark/cpubenchmark.net und Geekbench können daher nicht direkt miteinander verglichen werden, dies ist nur innerhalb des jeweiligen Benchmarksystemes möglich.

Geschwindigkeit der SD-Karte und weiterer Laufwerke (z.B. USB-Festplatten) messen

Die bisherigen Lösungen konzentrieren sich auf Prozessor und Arbeitsspeicher. Wer beispielsweise einen Dateiserver oder eine Cloud betreiben möchte, will aber eher wissen, wie schnell die Karte bzw. seine Festplatten sind.

SD-Karte des Raspberry Pi messen

Nun kann der Schreibtest beginnen: Wir erstellen im Home-Verzeichnis eine Datei namens test, darin werden 25.000 Blöcke mit jeweils 8.000 Bytes Länge geschrieben. Bei einer Standard-Installation wird dadurch die Speicherkarte testet. Selbstverständlich kann man diesen Pfad flexibel ändern, um etwa die Geschwindigkeit einer angeschlossenes USB-Festplatte zu messen. Wichtig: Der aktuelle Nutzer muss dort Schreibrechte besitzen. Immer eine Datei angeben, die nicht existiert bzw. überschrieben werden kann. Natürlich sollte auf dem jeweiligen Datenträger auch genug freier Speicher verfügbar sein.

$ dd if=/dev/zero of=~/test bs=8k count=25k conv=fsync
25600+0 records in
25600+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 11.623 s, 18.0 MB/s

200 MB wurden in 11,6 Sekunden mit einer Geschwindigkeit von 18 MB/s geschrieben. Wird die Blockgröße erhöht, steigt dies noch einmal deutlich. Im folgenden Beispiel nutzen wir 1 MB Blockgröße statt 8 KB:

$ dd if=/dev/zero of=test bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 7.54357 s, 27.8 MB/s

Um die Lesegeschwindigkeit zu ermitteln, nutzen wir einfach die soeben erstellte Testdatei als Eingangsdatei. Um eine Verfälschung zu vermeiden ist es notwendig, die Zwischenspeicher (Caches) temporär zu deaktivieren. Ansonsten speichert das Betriebssystem Teile der Daten in anderen, schnelleren Speichern, wie dem Arbeitsspeicher. Dies würde uns weit bessere Werte anzeigen, als die Karte tatsächlich liefern kann.

$ sync; sudo sysctl -w vm.drop_caches=3
$ dd if=~/test of=/dev/zero bs=8k count=25k
12800+0 records in
12800+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 2.45229 s, 42.8 MB/s

Rund 43 MB/s sind ein ordentlicher Wert. Damit wird der Raspberry Pi definitiv nicht auf Probleme stoßen – für den Pi wird eine Karte mit der A1 Spezifikation empfohlen, die mindestens 10 MB/s schreibt. Höhere Werte sind natürlich prinzipiell nie schlecht. Zumal bei SD-Karten die Schreibgeschwindigkeit mit der Zeit durch zunehmende Alterung eher abnimmt.

Wie schnell sind an den Raspberry Pi angeschlossene Festplatten?

Die Lesegeschwindigkeit von Festplatten lässt sich einfach über das Programm hdparm ermitteln. Es ließt nicht nur technische Daten und SMART-Werte von Festplatten aus, sondern kann auch die Geschwindigkeit testen. Ein Vorteil dabei: Es kann den Cache der Platte selbst (nicht den oben bereits deaktivierten vom Betriebssystem) für die Messung ein- oder ausschalten. Denn auch der beeinflusst das Ergebnis deutlich, ist aber nicht aussagekräftig – schließlich kann der Cache ja nicht immer (voll) genutzt werden.

Wir prüfen daher zunächst, wie unsere Festplatte heißt. Standardmäßig finden wir die erste unter /dev/sda, wobei der letzte Buchstabe entsprechend erhöht wird – die zweite Festplatte erhält sdb, die dritte sdc und so weiter. Gerade wenn man mehrere Festplatten angeschlossen hat, macht es Sinn, vorher mit lsblk nachzuschauen:

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 465.8G  0 disk
└─sda1        8:1    0 465.8G  0 part /media/pi/1C98FF0A98FEE166
mmcblk0     179:0    0  29.7G  0 disk
├─mmcblk0p1 179:1    0   256M  0 part /boot
└─mmcblk0p2 179:2    0  29.5G  0 part /

Über den Parameter -tT lassen wir hdparm jeweils einen lesenden Test mit und ohne Datenträgercache ausführen:

$ sudo hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   1516 MB in  2.00 seconds = 758.59 MB/sec
 Timing buffered disk reads: 364 MB in  3.01 seconds = 121.10 MB/sec

Mit Cache erreichen wir bei dieser schon älteren Festplatte traumhafte 758 MB/s. Ohne ihn sind es 121 MB/s, was der Realität im Alltag schon deutlich näher kommen dürfte. Am interessantesten ist daher der zweite Wert ohne Zwischenspeicher.

Um auch noch die Schreibgeschwindigkeit zu testen, muss die Festplatte eingehängt und beschreibbar sein. Dann können wir mit dd wieder Testdateien schreiben und messen. Da HDDs und vor allem SSDs in der Regel deutlich höhere Schreibraten aufweisen, macht es Sinn, hier nicht nur kleinere Blöcke sondern auch größere Dateien zu schreiben:

$ dd if=/dev/zero of=/hdd/test bs=8k count=50k conv=fsync
51200+0 records in
51200+0 records out
419430400 bytes (419 MB, 400 MiB) copied, 3.715 s, 113 MB/s

$ dd if=/dev/zero of=/hdd/test bs=1G count=3 conv=fsync
3+0 records in
3+0 records out
3221225472 bytes (3.2 GB, 3.0 GiB) copied, 30.8547 s, 104 MB/s

Grundsätzlich sollte man Benchmarks nicht um des Benchmarks willen durchführen bzw vergleichen, sondern sich immer die Frage stellen: Welche Leistung benötige ich? Um z.B. Filme anzuschauen reicht ein Raspberry Pi völlig aus, dies gilt eben so für viele weitere Anwendungsfälle wie ein Mini-NAS oder Server. Braucht es dagegen viel Leistung, ist er das falsche Werkzeug.

Leave a Reply