Übertaktung

Olli Graf -raspithek.de
raspi4bCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Raspberry Pi 4B/8GB

Grundlagen

Jeder Prozessor arbeitet mit einem gewissen Takt in dem er Befehle abarbeitet. Je höher der Takt, desto höher die Arbeitsgeschwindigkeit der CPU. Mit Übertaktung lässt sich ggf. etwas Geschwindigkeit aus der CPU herauskitzeln.

Aktuelle Frequenz

Um die aktuelle Frequenz festzustellen rufst das Programm neofetch auf, dass wir bei der Einrichtung des Raspberry Pi installiert haben. Es zeigt die Daten über die CPU an.

Standard CPU Frequenz eines Raspberry Pi 4B
Olli Graf - raspithek.de
aktuelle_cpu_freqCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Standard CPU Frequenz eines Raspberry Pi 4B

Du erkennst schnell, dass es sich um eine CPU mit vier Kernen handelt, die alle mi t 1,5 GHz takten. Dies ist die übliche Frequenz für einen Raspberry Pi 4B, der vor April 2021 in den Handel kam (neuere Modelle takten ab Werk mit 1,8 GHz).

Temperatur

Es ist einfach zu merken, je höher ein Prozessor taktet, desto mehr Wärme gibt er ab.Meine 486DX4 in meinem PC in den 1990ern benötigte bei 100MHz Takt keine besondere Kühlung, der Luftstrom innerhalb des Gehäuses reichte völlig aus. Eine aktuelle Intel CPU der Core Reihe bei benötigt bei 5,3 GHz fette Kühlkörper mit schnell drehenden Lüftern, um die Abwärme vom Chip abzuleiten.

Die aktuelle Temperatur deines Raspberry Pi kannst du mit folgendem Befehl feststellen:

sudo vcgencmd measure_temp

Bei meinem Raspi, der auf der Bauanleitung des Homeservers basiert, erhalte ich ohne große Systemlast einen Wert von 46,7°C.

Mit Hilfe des Programms Stressberry habe ich den Raspi mal richtig unter Last gesetzt, um eine Temperaturkurve zu bekommen.

Temperaturkurve ohne Übertaktung
Olli Graf - raspithek.de
gabbo-ohne-ocCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Temperaturkurve ohne Übertaktung mit Lüfter ab 60°C)

Bis etwa 60°C (blaue Linie) ist die Taktfrequenz (orange Linie) stabil, dann regelt die CPU den Takt auf etwa 700 Mhz runter, bis sie kühl genug ist, den Takt wieder hochzufahren. Das Argon One Gehäuse ist hier so konfiguriert, dass bei 60°C der Lüfter in Betrieb geht.

Dieser Schutzmechanismus soll eine Beschädigung des SoC verhindern. Daher hier ein Warnhinweis: Die Übertaktung des Raspi kann dazu führen, dass er bestenfalls nicht mehr bootet, schlimmstenfalls zerstört wird.

Benutze für solche Experimente einen Raspberry Pi, der in einem Gehäuse mit guter Kühlleistung sitzt.

Übertaktung des Raspberry Pi

Die Frequenz der CPU wird bei Raspberry Pi OS in der Datei /boot/config.txt konfiguriert. Zunächst sicherst du die Datei und editierst sie danach.

cd /boot
sudo cp config.txt config.txt.bak

In config.txt findest du eine Zeile

#arm_freq=700

Darunter schreibst du folgende Zeilen:

arm_freq=1700
over_voltage=6

Damit setzt du die Taktfrequenz auf 1,7 GHz und regelst die Spannung des Systems hoch, da die CPU mit einer höheren Frequenz auch mehr Strom benötigt. Der Wert von over_voltage erhöht die Spannung in 0,025V Schritten, d.h. 6* 0,025 macht insgesamt um 0,15V. Dazu benötigst du aber auch ein Netzteil, dass das verkraftet. Für den nächsten Testlauf habe ich den Lüfter des Gehäuses auf Dauerbetrieb gestellt.

Bei 1,7 Ghz erhalte ich von Stressberry folgendes Belastungsdiagramm

Temperaturkurve bei einer Übertaktung von 1,7 GHz
Olli Graf - raspithek.de
gabbo-mit-ocCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Temperaturkurve bei einer Übertaktung von 1,7 GHz

Du erkennst, dass der Raspberry Pi die 1,7GHz gut verkraftet, wenn die Kerntemperatur etwa 70°C erreicht, riegelt der SoC automatisch ab (das sog. Throtteling), um sich zu schützen und die Temperatur zu senken. Ebenso wird klar, dass das Argon One M.2 Case fürs Übertakten nur bedingt geeignet ist, da es die warme Luft nicht gut genug herausführt. Immerhin sitzt die Platine mit der M.2 SSD noch unter dem Raspi.

1800 Mhz

Für die nächste Stufe, setze ich arm_freq auf 1800, was der Frequenz entspricht, mit der neuere Raspi 4B ausgeliefert werden.

Temperaturkurve bei einer Übertaktung von 1,8 GHz
Olli Graf - raspithek.de
gabbo-mit-oc-1800Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Temperaturkurve bei einer Übertaktung von 1,8 GHz

Die Kurve ist der von 1,7 GHz sehr ähnlich. Allerdings setzt das Throtteling öfter ein und dauert länger an.

2000 MHz

In der Königsklasse habe ich den Raspi dann noch auf 2,0 GHz getaktet, was dann etwa 33% mehr ist als ursprünglich.

Temperaturkurve bei einer Übertaktung von 2,0 GHz
Olli Graf - raspithek.de
gabbo-mit-oc-2000Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Temperaturkurve bei einer Übertaktung von 2,0 GHz

Die Temperatur geht hier sehr viel schneller hoch und sogar bis 73°C hoch, bis das Throtteling einsetzt.

Ich habe Aussagen gefunden, die belegen, dass der Raspi auch bei 2100 MHz noch stabil lief, bei 2300 MHz gab es dann aber die ersten Aussetzer des Systems wegen Überhitzung.

Benchmarks

sysbench ist ein Programm, mit dem du die Leistungsfähigkeit deines Raspberry Pi gut messen kannst. Es kann nicht die Leistung der CPU, sondern auch von Dateisystemen und RAM messen.

Für die CPU-Messung benutze ich in jeder Frequenzstufe dieses Skript, zu dem ich von Chris Barnatt von explainingcomputers.com inspiriert wurde. Zunächst gibt es die aktuelle Temperatur und die CPU Frequenz aus und berechnet dann mit sysbench die ersten 1000 Primzahlen mit 4 simultanen Threads und gibt zum Schluss die Zeit für den Durchlauf aus. Danach werden nochmal 50.000 Primzahlen berechnet und danach wieder die Temperatur ausgegeben.

#! /bin/bash

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
vcgencmd measure_temp

sysbench --test=cpu --cpu-max-prime=1000 --num-threads=4 run >/dev/null 2>&1

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

sysbench --test=cpu --cpu-max-prime=50000 --num-threads=4 run
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
vcgencmd measure_temp

Hier sind die Ergebnisse, für jede Frequenzstufe wurde der Raspi für mind. 10 Minuten auf der Fensterbank (ca. 5°C Außentemperatur) abgekühlt.

Frequenz (MHz)Zeit(s)Temperatur (°C)
Start/ Ende
150010.097418,9/20,4
170010.078721,9/26,7
180010.083625,3/28,7
200010.070224,3/31,1

Du erkennst, dass sich die Stufe 1800 MHz wegen des längeren Throtteling nicht wirklich auszahlt.

Fazit

Die Übertaktung des Raspberry Pi kann unter den richtigen Umständen etwas mehr Power aus dem Rechner rausholen, allerdings ist eine gute Kühlung dabei unerlässlich, damit das Abriegeln des SoC den Geschwindigkeitszuwachs nicht auffrisst. Du solltest dir genau überlegen, ob du wirklich ein dauerhaft übertaktetes System benötigst und ggf. eine Alternative zum Raspberry Pi 4 benutzen, die von Haus aus schon mehr „unter der Haube“ hat.

Troubleshooting

Sollte dein Raspi nicht mehr booten, hast du zwei Möglichkeiten: Zum einen kannst du den Datenträger auf einem anderen Computer mounten und die config.txt auf den alten Stand zurückstellen oder du schließt eine USB-Tastatur an und hältst beim Start die Shift-Taste gedrückt, dadurch wird die Übertaktung nicht wirksam.

Update vom 15.02.24, die Dateien config.txt und cmdline.txt sind seit einem Upgrade von Raspberry Pi OS 5 nach /boot/firmware verschoben worden.

Schreibe einen Kommentar

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Olli Graf - raspithek.de
WordPress Cookie Hinweis von Real Cookie Banner