Raspberry Pi – Benchmark Tests – CPU
Ich besitze 3 Raspberry Pis, verwende sie in unterschiedlichen Bereichen und arbeite mit ihnen in zahlreichen Projekten. Das ganze schon über ein Jahr lang. Was ich aber noch nie gemacht habe sind Benchmark Tests. Warum eigentlich? Ich finde es ist an der Zeit den Raspberry Pi einem ordentlichen Benchmark zu unterziehen und einmal zu sehen was er tatsächlich alles kann und wo man ihn bei den einzelnen individuellen Tests einordnen darf. Wer mehr aus seinem Linux herausholen will der kann das Buch Linux Power Tools lesen.
Sysbench
Linux bietet ein recht praktikables Tool mit dem Namen sysbench. Es ist dafür konzipiert möglichst schnell einen umfassenden Überblick der Performance eines Systems zu bekommen. Das ist auf der einen Seite recht nett um unterschiedliche System zu vergleichen und diesen Vergleich auch in Zahlen auszudrücken, auf der anderen Seite lässt es auch schnell Aussagen zur Verwendbarkeit zu bestimmten Verwendungen möglich. Man kann also schnell sagen ob man das System beispielsweise als Datenbankserver verwenden kann und ab welcher Anzahl an Anfragen das System an die Grenzen stößt.
Installation
Soweit die Theorie. Am besten man installiert das Tool einfach wie gewohnt schnell und einfach über die Paketverwaltung:
sudo apt-get install sysbench
Das Programm braucht ganze 151 kB Speicher.
CPU Benchmark
Die einzelnen Benchmarks lassen sich über Parameter steuern. Ein Blick auf die Dokumentation liefert uns das nötige Wissen einen Test zu starten. Einen CPU Benchmark startet man so:
sysbench --test=cpu --cpu-max-prime=20000 run
Was stellt man hier ein? Zuerst testen wir die CPU. Dabei werden Primzahlen mit 64-bit Integer errechnet. Mit dem max-prime Parameter geben wir an mit welche Zahl die Berechnung aufhören soll.
Ergebnis
Der oben beschriebene CPU Benchmark liefert beim Raspberry Pi folgendes Ergebnis:
sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 1 Doing CPU performance benchmark Threads started! Done. Maximum prime number checked in CPU test: 20000 Test execution summary: total time: 1219.8859s total number of events: 10000 total time taken by event execution: 1219.8192 per-request statistics: min: 113.83ms avg: 121.98ms max: 402.32ms approx. 95 percentile: 138.55ms Threads fairness: events (avg/stddev): 10000.0000/0.00 execution time (avg/stddev): 1219.8192/0.00
Viel Information, der wichtigste Wert ist hier total time. Mit 1219 Sekunden braucht der Raspberry Pi für diese Aufgabe sehr lange. Die Zahl an sich ist jedoch nicht sehr aussagekräftig. Erst mit einem Vergleichswert kann man beurteilen wie gut/schlecht die CPU des Raspberry Pis ist.
Ein Vergleichswert liefert mein VServer mit 28 Sekunden. Ein Intel Duo Core mit 2.4 GHz. Man sieht dieser ist um Welten besser als die ARM CPU mit 700 MHz. Man muss jedoch dazu sagen, dass die Ergebnisse auch stark davon abhängig sind was sonst gerade mit der CPU berechnet wird, schließlich wird der Benchmark in einem Thread ausgeführt der vom Scheduler vom System Rechenzeit bekommt. Ich hatte am Pi mehrere Konsolen offen, den Chromium Browser, den Apache Webserver laufen und diverse andere Services wie motion. Vielleicht erhaltet Ihr ja einen besseren Wert, wenn ja: einfach hier als Kommentar posten 😉 Wer hat den schnellsten Raspi?
Im nächsten Teil werden wir weitere Benchmarks machen und analysieren.
Ist jetzt nicht das gleiche wie bei dir aber vielleicht trotzdem recht interessant zu sehen, das mein Pi mit 1000 MHz 948 Sekunden gebraucht hat.
ja danke! interessanter Wert. Man kann also auf jeden Fall mehr aus dem Pi rausholen.
Mein Raspberry Pi hat bei 950mhz 970s gebraucht
Hallo,
Raspberry Pi Version B
Übertaktung:
arm_freq=1150
core_freq=550
sdram_freq=550
over_voltage=8
temp_limit=85
force_turbo=1
–>Nur möglich, bei Verwendung eines leistungsstarken Netzteils (Anker Netzteil mit 5 USB Anschlüssen für Tablets und Smartphones), Werte gerade nicht zur Hand
Kühlun&Gehäuse: selbst gebaut, 2x 80×80 Lüfter (mit USB Adapter), Holzplatte als Plattform, welche durchsiebt ist. Auf die Plattform mit 4 speziellen Schrauben aus dem Baumarkt die beiden Lüfter befestigt.
Temperatur während Benchmark:
46-47°C, niemals über 50°C
Benchmark-Ergebnis:
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 809.7731s
total number of events: 10000
total time taken by event execution: 809.7342
per-request statistics:
min: 79.61ms
avg: 80.97ms
max: 171.69ms
approx. 95 percentile: 82.74ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 809.7342/0.00
LG
Hier ist das Ergebnis meiner Bastelei:
arm_freq=1200
core_freq=600
sdram_freq=600
over_voltage=8
force_turbo=1
Idle:
pi@raspberrypi ~ $ ./cpustatus.sh
Temperature: 34.2 C
Voltage: 1.40 V (+0.20 overvolt)
Min speed: 1200 MHz
Max speed: 1200 MHz
Current speed: 1200 MHz
Governor: ondemand
Ich habe einen Arctic F9 Lüfter einfach auf das aufgeklappte Adafruit Gehäuse gelegt und mit 5 Volt betrieben (lautlos). Der Lüfter hat sein eigenes Mininetzteil. Es ist ein UK Raspi mit Samsung Speicher und Kühlkörpern drauf. Als Netzteil habe ich ein Samsung ETA-U90EWE mit 2A. Das ist das beste, was ich hier habe. Die billigen Chinadinger taugen nix. Das ganze läuft wirklich gut und taugt mit Libreoffice als Schreibmaschine.
Hier sind meine Ergebnisse:
Test execution summary:
total time: 786.5875s
total number of events: 10000
total time taken by event execution: 786.5516
per-request statistics:
min: 77.16ms
avg: 78.66ms
max: 170.83ms
approx. 95 percentile: 79.68ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 786.5516/0.00
Noch zur Ergänzung:
Bei Vollast geht die Temperatur auf 39°C. Den Wert force_turbo habe ich auf 1 gesetzt, weil sonst das Dateisystem auf der sandisk ultra GB innerhalb kurzer Zeit kaputtgeht. Ist tatsächlich so.
Hier sind die Daten eines ummodifizierten Raspberry Pi 2:
sysbench –test=cpu –num-threads=4 –cpu-max-prime=20000 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 4
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 195.5052s
total number of events: 10000
total time taken by event execution: 781.8637
per-request statistics:
min: 77.94ms
avg: 78.19ms
max: 118.43ms
approx. 95 percentile: 78.50ms
Threads fairness:
events (avg/stddev): 2500.0000/6.96
execution time (avg/stddev): 195.4659/0.02
Danke für den Beitrag. Na das schaut doch schon interessant aus.
Pi 2 @ 1100 MHz hat 160,.. Sekunden gebraucht.
Hier ist nun tatsächlich die SD-Karte der Flaschenhals.
Welche Class hat deine SD Karte? Die kleine eingeringelte Zahl…
Also ich hab 3 Systeme verglichen.
~>Raspberry Pi 2 mit 1GHz
~>Mein NAS mit „Intel Celeron J1900“ CPU non-OC, 4GB RAM
~>Mein Server mit „Intel Xeon E5-2670“ CPU non-OC, 128GB RAM
Ich hab num-threads der jeweiligen CPU angepasst.
RPi 2
sysbench –test=cpu –cpu-max-prime=20000 –num-threads=4 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 4
Doing CPU performance benchmark
Threads started!
sysbench –test=cpu –cpu-max-prime=20000 –num-threads=4 runDone.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 175.9500s
total number of events: 10000
total time taken by event execution: 703.6913
per-request statistics:
min: 70.16ms
avg: 70.37ms
max: 106.40ms
approx. 95 percentile: 70.63ms
Threads fairness:
events (avg/stddev): 2500.0000/5.20
execution time (avg/stddev): 175.9228/0.01
NAS
sysbench –test=cpu –cpu-max-prime=20000 –num-threads=4 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 4
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 11.5800s
total number of events: 10000
total time taken by event execution: 46.2921
per-request statistics:
min: 4.54ms
avg: 4.63ms
max: 20.27ms
approx. 95 percentile: 4.74ms
Threads fairness:
events (avg/stddev): 2500.0000/1.87
execution time (avg/stddev): 11.5730/0.00
Server
sysbench –test=cpu –cpu-max-prime=20000 –num-threads=16 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 16
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 2.1841s
total number of events: 10000
total time taken by event execution: 34.8840
per-request statistics:
min: 2.85ms
avg: 3.49ms
max: 31.28ms
approx. 95 percentile: 3.32ms
Threads fairness:
events (avg/stddev): 625.0000/35.81
execution time (avg/stddev): 2.1803/0.01
Ist halt nur ein Pi 😀
hey super! Danke dafür.
est execution summary:
total time: 1093.4484s
total number of events: 10000
total time taken by event execution: 1093.4015
per-request statistics:
min: 101.81ms
avg: 109.34ms
max: 317.03ms
approx. 95 percentile: 153.94ms
Bei 950 mhz raspi 2
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 317.5587s
total number of events: 10000
total time taken by event execution: 317.5516
per-request statistics:
min: 31.62ms
avg: 31.76ms
max: 74.99ms
approx. 95 percentile: 31.83ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 317.5516/0.00
Raspi läuft mit:
arm_freq=1400
gpu_freq=580
sdram_freq=500
over_voltage=6
Raspberry 4:
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 187.9605s
total number of events: 10000
total time taken by event execution: 187.9548
per-request statistics:
min: 18.71ms
avg: 18.80ms
max: 57.35ms
approx. 95 percentile: 18.92ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 187.9548/0.00
Raspi läuft mit:
arm_freq=2000
over_voltage=4
Mit meinen Neuerwerb einen RASP PI 4 B 4GB, bin ich im allg. mit der Geschwindigkeit eher mäßig zufrieden. Ich habe das Image 2019-07-10-raspbian-buster-full.img installiert um ihn zu testen. Eigentlich wollte ich ihn, wegen seines USB 3 für meine Nextcloud nutzen. Hier ist er allerdings im normalen Betrieb sehr heiß geworden. Habe nun einen aktiven Kühler aufgesetzt so dass im vollen Betrieb die Temperatur nicht über 40 Grad steigt.
Hier meine Werte der CPU performance benchmark:
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 248.5599s
total number of events: 10000
total time taken by event execution: 248.5530
per-request statistics:
min: 24.38ms
avg: 24.86ms
max: 71.76ms
approx. 95 percentile: 25.05ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 248.5530/0.00
__________________________________________________
gibt es noch andere Möglichkeiten die Performanz zu verbessern?
oot@raspberrypi:/home/pi# sysbench –test=cpu –cpu-max-prime=20000 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 174.9341s
total number of events: 10000
total time taken by event execution: 174.9293
per-request statistics:
min: 17.41ms
avg: 17.49ms
max: 52.67ms
approx. 95 percentile: 17.52ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 174.9293/0.00
over_voltage=6
arm_freq=2147
gpu_freq=700