Maximale CPU-Frequenz einschränken

Wann macht das Sinn

Für die meisten Anwender ist dieses Thema völlig uninteressant.

Um Energie zu sparen, nutzt diese Maßnahme nichts. Bekommt die CPU etwas zu tun, wird sogar mehr Energie verbraucht, da für die Tätigkeit mehr Zeit benötigt wird.

Lässt jemand die CPU längere umfangreiche Aufgaben erledigen und bekommt Probleme mit der Temperatur, kann man diese Maßnahme als Notlösung einsetzen, um die Hardware vor Beschädigung zu schützen. Letztendlich sollte man hier doch etwas in die Kühlung investieren (Kühlkörper, Metallgehäuse mit passiver Kühlung).

Wer selbst Programme erstellt bzw. testet, kann das Herabsenken der CPU-Taktfrequenz nutzen, um Laufzeitprobleme zu analysieren. Auf langsamen Systemen werden solche Probleme besser erkennbar.

Feststellen, ob das System CPU-Frequenzen händelt

Normalerweise besitzt der Debian-Kernel eine Funktion, die bei Belastung die CPU-Frequenz mittels governor (Regler) blitzschnell (Standard 10 ms bei Raspberry Pi mit Debian) erhöht. Ist die Belastung vorbei, wird die CPU-Frequenz verringert. Diese Funktion ist aber nicht immer vorhanden und um sie zu installieren, benötigt man eine neuere Firmware für das Gerät.

Ob diese Funktion aktiv ist, erfährt man mit:

ls /sys/devices/system/cpu/cpufreq/

Sind dort weitere Verzeichnisse angelegt, kann das System die Taktfrequenzen beeinflussen.

Ist dieses Verzeichnis leer, ist kein Verändern der Taktfrequenzen möglich.

Verfügbare Taktfrequenzen ausgeben

Moderne CPUs können heute stufenlos getacktet werden, hier gibt es nur die minimale und die maximale Frequenz.

CPUs eines Raspberry Pis können nur in gewissen Stufen getacktet werden, welche man kennen sollte.

cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies

Die verfügbaren Frequenzen werden in kHz (Kilohertz) ausgegeben.

Maximale Taktfrequenz herabsetzen

Kann das System Taktfrequenzen beeinflussen, haben wir nun die Möglichkeit, die maximale Taktfrequenz zu ändern. Da man dafür Root-Rechte (Eingriff in das System) benötigt, müssen wir einen kleinen Umweg mit tee machen.

Um die maximale Taktfrequenz auf 800 MHz zu beschränken, nutzt man das Komanndo

echo "800000" | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

Die Änderung ist sofort wirksam. Nach einem Neustart sind die ursprüngliche Werte eingestellt.

Natürlich kann man jederzeit auf gleicher Art die maximale Taktfrequenz wieder erhöhen.

echo "1000000" | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

Bitte lasst den Unsinn zu versuchen, mit diesem Weg die CPU zu übertackten. Es funktioniert nicht! Egal, was man in welche virtuelle Datei schreibt, es gelten die Hardwaregrenzen. Das einzigste, was ihr da vielleicht erreicht, ist, das System unbrauchbar zu machen.

Analog kann man auch die minimale Taktfrequenz beeinflussen.

echo "800000" | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq

Aber ob das wirklich Sinn macht, steht auf einem anderen Blatt.