Raspberry Media Center – Teil 18: CPU-Kühlung

KühlkörperDass Mikroprozessoren gut gekühlt sein wollen, das wissen wir aus der PC-Welt seit 30 Jahren. Je mehr Leistung durch Übertakten herausgezogen wird, desto besser muss die Kühlung erfolgen, per Lüfter oder am besten gleich mit Heatpipe oder Wasserkühlung. Wie schaut es aber beim Raspberry Pi 2 aus? Auch für dessen CPU werden im Handel Kühlkörper angeboten (siehe Bild). Braucht der RasPi Kühlkörper? Ich mache ein paar Experimente.

Im vorhergehenden Artikel hatte ich gezeigt, wie sich ein Raspberry Pi 2 übertakten (und auch untertakten) lässt. Aber welche Auswirkungen hat das auf den Stromverbrauch und auf die Temperaturentwicklung.

Stromverbrauch bei Über- und Untertaktung

StrommessungBetrachten wir zuerst den Stromverbrauch, das ist das kürzere Thema. Natürlich wird ein Computer mehr Energie verbrauchen, wenn er mehr leistet. Vor allem, wenn er dadurch heißer wird. Zur Messung verwende ich ein digitales Volt-/Amperemeter für den USB-Anschluss, ebenso wie in meinem Artikel über die Raspberry Pi Stromversorgung. Das Messgerät ist vorrangig dazu bestimmt, die Ladeströme beim Aufladen von Smartphones zu überprüfen. Durch die gleichzeitige Anzeige von Spannung und Stromstärke, lässt sich am Raspberry Pi und an dessen Peripherie sehr schnell der Leistungsbedarf in Watt durch Multiplikation ermitteln.

Dabei messe ich keinen signifikanten Unterschied, egal ob die CPU unter Last mit 900MHz läuft, oder auf 1000Mhz hochgetaktet wird. Die Leistungsaufnahme liegt bei 1,85W. Das gleiche Bild ergibt sich im Ruhezustand. 0.86W verbraucht der RasPi bei 600MHz, genauso wie bei 400MHz. Lediglich das Laufband würde den Verbrauch auf über ein Watt hochtreiben. Dabei ist allerdings zu erwähnen, dass das Messgerät lediglich zwei Stellen hinter dem Komma anzeigt. 0,01A (10mA) stehen bei 5V also für 50mW. Mehr ist hier also an Genauigkeit nicht zu erwarten.

Fazit: Eine signifikante Stromersparnis ist nicht zu erwarten, wenn man den Ruhetakt des Raspberry Pi von 600 auf 400MHz absenkt. Umgekehrt führt ein Übertakten auch nicht zu messbar höheren Stromkosten. Der RasPi ist eh ein sehr sparsamer Geselle.

Temperaturkurve im Ruhezustand

Schauen wir uns nun das Temperaturverhalten des Raspberry Pi 2 genauer an. Zu diesem Zweck habe ich mir ein kurzes Python-Programm geschrieben, das alle x Sekunden sowohl die CPU-Temperatur, als auch den anliegenden CPU-Takt abfragt und in eine Textdatei schreibt. Die kann ich dann in Excel einlesen und die Daten als Diagramm darstellen. Alle Messreihen werden mit geöffnetem Gehäuse durchgeführt, um der CPU zumindest die Gelegenheit zu geben, ihre Wärme an die Umgebungsluft abzuführen. Einen Hitzestau innerhalb des Gehäuses will ich dadurch vermeiden.

Zuerst interessiert mich, wie sich die CPU-Temperatur über den Tag ändert, ohne dass der Raspberry etwas zu tun hat. Allein in Abhängigkeit von der Umgebungstemperatur.

600MHz Leerlauf

Diagramm 1: 24 Stunden ohne Belastung

Die Messreihe läuft von Mitternacht an über 24 Stunden. Die blaue Fläche unten zeigt den CPU-Takt an, der bei 600MHz liegt. Lediglich ein paar wenige Ausreißer auf 900MHz gibt es. Das sind Zeitpunkte, zu denen Kodi der Meinung ist, irgendwas erledigen zu wollen. Die obere Kurve ist die CPU-Temperatur. Sie liegt zuerst bei 40° und sinkt noch leicht bis Sonnenaufgang. Dann steigt sie erst gemächlich an und am Nachmittag bei direkter Sonneneinstrahlung recht drastisch bis auf nahezu 65°. Die Raumtemperatur bewegt sich zum Vergleich zwischen 25° und 36° – der Juli 2015 hatte sehr heiße Tage. Wir sehen aus dieser Messreihe, dass die CPU-Temperatur des RasPi auch ohne Last und Übertaktung durchaus um 25° schwanken kann. Das allein aufgrund der Umgebungstemperatur.

Temperatur bei Reduzierung des Ruhetakts

Bleiben wir noch kurz beim Raspberry Pi im unbelasteten Zustand. Würde es nicht die Temperatur weiter absenken, wenn wir den CPU-Takt von standardmäßigen 600MHz auf sagen wir mal auf 400MHz reduzieren? Die nächste Messreihe gibt die Antwort.

600-400

Diagramm 2: Ruhetakt 600 und 400MHz

Und die lautet nein. Die Messung läuft über eine Stunde, wobei zur Halbzeit der Raspberry gebootet wird um die 400MHz zu aktivieren. Wie man sieht, sieht man nichts, zumindest keine Absenkung der CPU-Temperatur. Ein arm_freq_min=400 in der config.txt bringt also nichts, weder Temperatursenkung noch Stromeinsparung.

Temperaturkurve bei CPU-Last

Als nächstes soll der Raspberry Pi ein wenig arbeiten, damit wir sehen wie sich dann die Temperaturkurve entwickelt. Die Messung läuft hier wieder über eine Stunde, wobei nach 5 Minuten die Wiedergabe eines längeren Videos beginnt, dass softwaremäßig von der CPU dekodiert werden muss. Das bringt die CPU nahe an 100% Auslastung.

600-900

Diagramm 3: Videowiedergabe ohne Übertaktung

Start und Ende der Abspielphase lassen sich gut am CPU-Takt (in blau) erkennen, der während der Aktion von 600MHz auf 900MHz hoch geht. Die CPU-Temperatur folgt sofort. Von ca. 44° in Ruhe, steigt sie schnell an auf ca. 60° und dann langsam weiter bis auf 67°. Am Ende der Lastphase sinkt sie dann aber auch sofort wieder ab.

Temperatur bei Übertaktung

Im nächsten Versuch kommt nun Overclocking ins Spiel. Der Ablauf ist ähnlich wie zuvor, nur dass der CPU-Takt bei Belastung auf 1050MHz gesteigert wird. Bei 1100MHz läuft mein Raspberry Pi leider nicht mehr stabil, deshalb verwende ich hier nur 1050MHz. Bei anderen Geräten kann es aber durchaus auch mit 1100MHz noch funktionieren. Zur Lasterzeugung spiele ich diesmal kein Video ab, sondern setze das Tool Stress ein, so wie in meinem Artikel über das Übertakten beschrieben. Das Stresstool erzeugt eine gleichmäßigere CPU-Last auf allen 4 CPU-Kernen, die konstant bei 100% liegt.

600-1050

Diagramm 4: Stresstest 1050MHz ohne Kühlkörper

Wir sehen eine höhere Temperatur als im Vorversuch. Die wird allerdings nur zum Teil durch den höheren CPU-Takt verursacht. Das Stresstool bedingt einen Teil davon und die Ausgangstemperatur liegt auch bereits ein paar Grad höher. Viel wichtiger ist bei diesem Schaubild die Erkenntnis, dass sich selbst bei Übertaktung die Temperatur bei ca. 73° einpendelt und nicht mehr weiter ansteigt. Und das, obwohl hier noch nicht der Schutzmechanismus der CPU greift, der bei Erreichen von 85° den CPU-Takt zurückregelt.

Temperaturkurve mit Kühlkörper

Jetzt kommt endlich ein Kühlkörper ins Spiel. Ich wiederhole den Versuch von eben und klebe zur Halbzeit bei ca. 30 Minuten den kleinen Kupferkühlkörper (siehe Bild ganz oben) auf die CPU.

Aufgesetzter Kühlkörper

Diagramm 5: Aufsetzen eines Kühlkörpers

Wie nicht anders erwartet geht die Temperatur dabei erst einmal ordentlich zurück. Der Kühlkörper ist beim Aufbringen nur handwarm und kühlt die CPU bis weit unter 60° herunter. Dann wird er aber zügig erwärmt und die Temperatur steigt wieder über 70° – nur wenig niedriger als ohne Kühlkörper. Der Kühleffekt ist allerdings eher mäßig und beträgt vielleicht zwei Grad.

Zum Vergleich wiederhole ich nun den vorletzten Versuch (Diagramm 4) unter gleichen Bedingungen, aber mit Kühlkörper.

Temperaturkurve 600-1050 mit Kühlkörper

Diagramm 6: Stresstest 1050MHz mit Kühlkörper

Die Ausgangstemperatur in den unbelasteten ersten 5 Minuten liegt bei beiden Versuchen in etwa bei 47 Grad, das Maximum bei guten 73° ohne und nicht ganz 72° mit Kühlkörper. Also auch hier nur ein Kühleffekt, der bei ca. zwei Grad liegt. Gut sichtbar ist aber die ausgleichende Wirkung der Masse des Kühlkörpers. Der Anstieg der Temperaturkurve erfolgt mit Kühlkörper flacher und auch die abfallende Flanke am Ende der Belastung ist weniger steil. Das ist zumindest ein gutes Indiz dafür, dass der Kühlkörper ausreichenden Kontakt mit der Oberfläche der CPU hat, obwohl er nur einfach aufgeklebt wird.

Übertemperaturschutz

Im letzten Versuch möchte ich überprüfen, wie gut der Schutzmechanismus des Raspberry Pi vor Übertemperatur funktioniert. Per Standard soll die CPU den Takt bei Erreichen von 85° selbständig reduzieren um eine Überhitzung zu verhindern. 85° ist testweise nicht so einfach zu schaffen, ohne den Raspberry in den Backofen zu legen, aber mit

temp_limit=65

in der config.txt senke ich den Schwellwert auf 65 Grad ab. Von Interesse wäre auch, ob die CPU auf Normaltakt (900MHz), normalen Minimumtakt (600MHz) oder den in der config.txt definierten Minimumtakt zurückschaltet. Um das zu erkennen setze ich zusätzlich den Minimumtakt mit

arm_freq_min=400

auf 400MHz herunter.

Automatische Begrenzung

Diagramm 7: Temperaturbegrenzung auf 65 Grad

Die ersten 5 Minuten sind wieder lastfrei, der CPU-Takt liegt bei 400MHz und die Temperatur um 45°. Dann beginnt der Stresstest, der CPU-Takt geht hoch auf 1050MHz und die Temperatur ist innerhalb weniger zehn Sekunden beim Schwellwert von 65° angelangt. Nun regelt die CPU den Takt auf 400MHz, also den von mir vorgegebenen Minimumwert, zurück. Folglich sinkt die Temperatur wieder unter den Schwellwert und das Übertakten wird erneut zugelassen. So schwankt der CPU-Takt während der gesamten Dauer des Stresstests zwischen 400MHz und 1050MHz hin und her und hält dadurch die CPU-Temperatur bei den vorgegebenen 65°.

Wenn ich davon ausgehe, dass dieser Mechanismus bei 85° ebenso gut und verlässlich funktioniert, dann kann man sicher sagen, dass hier ein wirksamer Übertemperaturschutz vorhanden ist.

Fazit

In nahezu jedem Blog über Raspberry Pis kann man lesen, wie wichtig Kühlkörper sind, speziell bei Übertaktung. Nach meinen eigenen Tests muss ich sagen, dass diese Aussagen nicht viel Substanz zu haben scheinen. Schreibt da einer vom anderen ab? Oder von Händlern, die freilich gerne Kühlkörper als Zubehör verkaufen? Oder werden da Aussagen, die vielleicht auf die alten Raspberries zutreffen, ungeprüft auf den Raspberry Pi 2 übertragen? Ich weiß es nicht. Jedenfalls möchte ich nach meinen eigenen Tests folgende Aussagen wagen:

  1. Der Raspberry Pi 2 hat einen ARM-Prozessor, der auf den Betrieb in Smartphones ausgelegt ist. Der ist vor Überhitzung geschützt und für den Betrieb ohne Kühlkörper ausgelegt. Ein Raspberry Pi 2 braucht keinen Kühlkörper.
  2. Passive Kühlkörper, die auf die Raspberry CPU aufgeklebt werden, haben kaum einen wirklich kühlenden Effekt. Sie sind reine Geldverschwendung.

 


Weitere Artikel in dieser Kategorie:

5 Kommentare

  1. Bastian

    Danke für die weitreichende Ausführung zum Thema. Vielleicht sind Kühlkörper nützlich bei Verwendung eines Gehäuse?
    Ein ergänzender Vergleichswert könnte hierüber Auskunft geben.

  2. Helmut (Beitrag Autor)

    Innerhalb eines Gehäuses ist ein passiver Kühlkörper noch weniger sinnvoll, als ohne Gehäuse. Denn die Wärme muss ja an die Umgebungsluft abgegeben werden, was durch ein Gehäuse erschwert wird.

  3. Bastian

    Das sehe ich auch so. Wenn allerdings ein Gehäuse verwendet wird, aus welchen Gründen auch immer, dann sind Kühlkörper aber sicherlich nicht kontraproduktiv. Oder?

  4. Helmut (Beitrag Autor)

    Nein, sicher nicht.

  5. Flo

    Es ist leider tatsächlich immer noch so dass ein Großteil der (Raspberry Pi-) Blogs von einem anderem abschreibt.

    Was mittlerweile Standard bei solchen Blogs ist das Angaben zur Quelle oder den Quellen nicht mehr gemacht werden und wenn dann nur auf Hinweise.

    Mache Blogs haben ihren Erfolg meiner Meinung nach nicht verdient. Klauen bei Kleinen Blogs und machen absichtlich keine Quellenangaben.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.