Raspberry Pi 2 Overclocking & Benchmarking

Nachdem ich gestern meinen ersten Eindrücke des neuen „Raspberry Pi 2 Model B V1.1“ beschrieben habe, wollte ich nun mal einen genaueren Blick auf die Overclocking-Möglichkeiten werfen und deren Auswirkungen auf Benchmarks und Stromverbrauch ermitteln.

Overclocking des RasPi gibt nochmal einen ordentlichen Leistungsschub dazu und kann in gewissen Grenzen ohne Garantieverlust durchgeführt werden. Von daher ist dieses Thema hochinteressant.

TL;DR: Tabellarische Zusammenfassung

To make a long story short. 🙂

 Im IdleOhne OC
1 Core
Ohne OC
"Pi2" / 1,0 GhZ
1 Core
"Pi2" / 1,0 GhZ
1,1 GhZ
1 Core
1,1 GhZ
Ampere0,0200,0230,0260,0240,0300,0260,030
Watt1,802,402,902,453,302,603,80
Kosten / Jahr3,94 €6,35 €7,23 €8,32 €
Mini-CPU-Benchmark
[Sekunden]
2,602,392,20
PHP-Bench
[Sekunden]
50,9346,0641,97
Sysbench
[Sekunden]
74,6667,0861,13

Das getestete System

raspi_version

Die Overclocking-Optionen

raspi<em>overclock</em>presets

Das Overclocking lässt sich mit dem Tool „raspi-config“ sehr leicht bewerkstelligen. Da es allerdings derzeitig nur ein „Pi2“-Profil gibt und die anderen scheinbar noch für die ältere Generation gelten, habe ich mich direkt an die /boot/config.txt-Datei gemacht.

In der Sektion „Overclocking Options“ der offiziellen Dokumentation sind die möglichen Parameter erläutert. Die interessanten davon können gesetzt werden, ohne die Garantie zu beeinträchtigen.

Vereinfacht gesagt kann man den RasPi so stark übertakten, wie man möchte, wenn man zwei Optionen nicht verändert: Der Turbo-Modus darf nicht mit „forceturbo“ erzwungen werden und das „templimit“ darf nicht über die standardmäßigen 85 Grad gesetzt werden. Im Endeffekt muss der RasPi also die Chance haben zur Rettung seiner Hardware automisch zu drosseln. Nur wenn ihm das verwehrt wird und die Hardware darunter leidet, ist die Garantie verwirkt. Das finde ich wirklich fair.

Das richtige Netzteil

Ich habe hier mit zwei verschiedenen Netzteilen gearbeitet.

Zum RasPi hatte ich den aktuellen „PC-Netzteil Bestseller Nr. 1“ von Rygdes mit dazubestellt. Das Netzteil bietet die empfohlenen 2 Ampere Stromstärke und 5 Volt Spannung. Ich kann die Empfehlung hierfür teilen, da der Computer damit gut läuft.

Zusätzlich habe ich das AmazonBasics USB-Netzteil ausprobiert. Dieses hat mit 2,1 Ampere etwas mehr Stromstärke. Mehr als 2 A sollen laut vielen Berichten empfehlenswert für das Overclocking sein. Leider kommt es bei diesem Netzteil beim Overclocking in meinem Fall zu Instabilitäten, da es nicht genügend Strom liefert. Das kann man daran erkennen, dass die rote Strom-LED anfängt zu blinken und auf dem Bildschirm rechts oben ein farbiges Rechteck auftaucht. Während des Betriebs sollte die rote LED niemals ausgehen.

Wenn der RasPi nicht mehr startet

Während des Bootens wird man aufgefordert, die Shift-Taste gedrückt zu halten, um einen eingestellten Overclock nicht anzuwenden. Dies hat bei mir leider sowohl mit der linken als auch mit der rechten Shift-Taste meiner Tastatur nicht funktioniert. Dafür liegt die config.txt auf der Boot-Partition, die auch von Windows gelesen werden kann. Hier lässt sich mit Notepad die Einstellung nochmal wieder rückgängig machen, falls das Gerät nicht mehr starten sollte.

Die Benchmarks

Ich gucke mir für einen Eindruck von der Leistung einer Maschine immer gerne drei verschiedene Benchmarks an. Diese haben den Vorteil, dass sie deutlich schneller durch sind als z.B. der UnixBench.

  • Ein „Mini-CPU-Benchmark“ auf einem Core: „time echo „scale=1000; 4*a(1)“ | bc -l“
  • Der Sysbench für CPU mit dem Aufruf „sysbench –test=cpu –num-threads=4 run“ (= alle Kerne)
  • Der PHP-Benchmark von http://php-benchmark-script.com (lastet auch nur einen Core aus)

Vergleichswerte zu den Benchmark-Ergebnissen finden sich auch in anderen Beiträgen.

Stromverbrauch

Da der Overclock standardmäßig dynamisch, d.h. „ondemand“, ist und sich das auch ohne Garantie-Verlust gar nicht ändern lässt, sind die Verbrauchswerte ohne Last überall gleich.

Gemessen habe ich die Werte mit dem Energiekostenmessgerät KD-302 von Reichelt.

Meine gemessenen Werte sind 0,020 Ampere und 1,8 Watt.

Kosten würde das also (1,8 W/1000) kW * 24 h/Tag * 365 Tage/Jahr * 0,25 ct/Minute = 3,94 €/Jahr.

Ohne Overclock

Einstellungen in der config.txt

Dies ist der Zustand, wenn keine der Overclocking-Optionen in der config.txt gesetzt sind. Welche Werte das genau sind, kann ich gar nicht sagen, weil die Standard-Werte aus der Doku offenbar nicht für den RasPi 2 gelten. Es ist aber anzunehmen, dass sie natürlich niedrig und somit hardwareschonend sind.

Stromverbrauch

Bei Auslastung eines Kerns liegen die Werte bei 0,023 A und 2,4 W.
Bei Auslastung aller Kerne steigen diese auf 0,026 A und 2,9 W.

Bei permanter Auslastung wären das also (2,9 W/1000) kW * 24 h/Tag * 365 Tage/Jahr * 0,25 ct/Minute = 6,35 €/Jahr.

Benchmark-Ergebnisse

"time echo "scale=1000; 4*a(1)" | bc -l" --> 2,6 Sekunden
Test execution summary:  
    total time:                          74.6614s
    total number of events:              10000
    total time taken by event execution: 298.5745
    per-request statistics:
         min:                                 29.65ms
         avg:                                 29.86ms
         max:                                 50.80ms
         approx.  95 percentile:              29.92ms

Threads fairness:  
    events (avg/stddev):           2500.0000/11.87
    execution time (avg/stddev):   74.6436/0.01
--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2015-04-12 10:44:55  
Server : server@192.168.0.29  
PHP version : 5.4.39-0+deb7u2  
Platform : Linux  
--------------------------------------
test_math                 : 18.364 sec.  
test_stringmanipulation   : 18.611 sec.  
test_loops                : 8.456 sec.  
test_ifelse               : 5.497 sec.  
--------------------------------------
Total time:               : 50.928 sec.  

Das „Pi2“-Profil: Das 1 GhZ-Setting

Einstellungen in der config.txt

Wenn in der raspi-config das Profil „Pi2“ ausgewählt wurde, stehen diese Werte in der config.txt:

arm_freq=1000  
sdram_freq=500  
core_freq=500  
over_voltage=2  

Diese Werte verstehe ich einfach mal als Empfehlung. Bei mir läuft der RasPi damit auch stabil.

Stromverbrauch

Bei Auslastung eines Kerns liegen die Werte bei 0,024 A und 2,45 W.
Bei Auslastung aller Kerne steigen diese auf 0,030 A und 3,3 W.

Bei permanter Auslastung wären das also (2,9 W/1000) kW * 24 h/Tag * 365 Tage/Jahr * 0,25 ct/Minute = 7,23 €/Jahr.

Benchmark-Ergebnisse

"time echo "scale=1000; 4*a(1)" | bc -l" --> 2,39 Sekunden
Test execution summary:  
    total time:                          67.0779s
    total number of events:              10000
    total time taken by event execution: 268.2211
    per-request statistics:
         min:                                 26.68ms
         avg:                                 26.82ms
         max:                                 40.02ms
         approx.  95 percentile:              26.87ms

Threads fairness:  
    events (avg/stddev):           2500.0000/7.28
    execution time (avg/stddev):   67.0553/0.01
--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2015-04-12 10:52:31  
Server : server@192.168.0.29  
PHP version : 5.4.39-0+deb7u2  
Platform : Linux  
--------------------------------------
test_math                 : 16.589 sec.  
test_stringmanipulation   : 16.839 sec.  
test_loops                : 7.653 sec.  
test_ifelse               : 4.976 sec.  
--------------------------------------
Total time:               : 46.057 sec.  

Noch schneller? Overclock auf 1,1 GhZ

Einstellungen in der config.txt

Laut Dokumentation kann man mit der over_voltage bis zu 6 ohne Garantieverlust gehen. Dies unterstützt die Stabilität des Systems, wenn der Takt weiter hoch auf 1,1GhZ gesetzt wird. Die anderen Werte lasse ich unverändert.

arm_freq=1100  
sdram_freq=500  
core_freq=500  
over_voltage=6  

Stromverbrauch

Bei Auslastung eines Kerns liegen die Werte bei 0,026 A und 2,6 W.
Bei Auslastung aller Kerne steigen diese auf 0,030 A und 3,8 W.

Bei permanter Auslastung wären das also (3,8 W/1000) kW * 24 h/Tag * 365 Tage/Jahr * 0,25 ct/Minute = 8,32 €/Jahr.

Das System wurde dabei maximal 65 Grad warm.

Benchmark-Ergebnisse

"time echo "scale=1000; 4*a(1)" | bc -l" --> 2,2 Sekunden
Test execution summary:  
    total time:                          61.1241s
    total number of events:              10000
    total time taken by event execution: 244.4150
    per-request statistics:
         min:                                 10.60ms
         avg:                                 24.44ms
         max:                                 85.60ms
         approx.  95 percentile:              24.51ms

Threads fairness:  
    events (avg/stddev):           2500.0000/8.60
    execution time (avg/stddev):   61.1037/0.01
--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2015-04-12 11:10:41  
Server : 192.168.0.29@192.168.0.29  
PHP version : 5.4.39-0+deb7u2  
Platform : Linux  
--------------------------------------
test_math                 : 15.093 sec.  
test_stringmanipulation   : 15.386 sec.  
test_loops                : 6.957 sec.  
test_ifelse               : 4.528 sec.  
--------------------------------------
Total time:               : 41.964 sec.  

Stabilität

Um die Wärmeentwicklung zu testen habe ich den Sysbench 30 Minuten in einer Schleife laufen lassen. Hierbei blieb das System stabil. Als ich jedoch gleichzeitig noch den PHP-Bench anstarten wollte, stürzte das Gerät mit einem „Unable to handle kernel paging request“ ab.

Und wie sieht es mit 1,2 GhZ aus?

Einstellungen in der config.txt

Ausgehen von der 1,1 GhZ-Konfiguration habe ich den CPU Takt noch weiter angehoben:

arm_freq=1200  
sdram_freq=500  
core_freq=500  
over_voltage=6  

Stabilität

Leider bootet das System bei mir so nicht mehr. Es kommt bis zum Punkt, an dem die Übertaktung gesetzt wird, gibt dann kryptische Zeichen aus und bleibt stehen. Damit sind 1,1 GhZ wohl das Limit meines RasPi.

Leistungsvergleich mit VServern

Diese Leistung vergleiche ich gerne mit dem, was man für wenig Geld als VServer bekommt. Hier schafft eine günstige Linevast-VPS (30€/Jahr) einen PHP-Bench von beeindruckenden 3 Sekunden und die Uberspace-Server (shared hosting ab 1€/Monat) sehr gute 5 Sekunden.

Wenn man sich dagegenhält, dass so ein VServer damit durschnittlich 50 / 4 = 12,5 mal so schnell wie der Raspberry ist, wird klar, dass der RasPi für Hosting noch lange keine Alternative darstellt.

Für den Heimserver, der nicht im Internet steht, ist der RasPi aber eine tolle Alternative. Er ist mit den maximal 8,32€ / Jahr, die er an Stromkosten verursachen kann, wirklich sehr günstig zu betreiben. Für diesen Preis bekommt man überhaupt keinen mir bekannten VServer.