Debian CPUFreq

Aus Wiki
Version vom 10. August 2009, 19:58 Uhr von Erich (Diskussion | Beiträge) (Die Seite wurde neu angelegt: ==Einleitung== Wenn unter Debian ein Desktop installiert ist, wird automatisch ein CPU-Powermanager eingerichtet. Beim reinen Serverbetrieb ist dies nicht der Fall. Um ...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Einleitung

Wenn unter Debian ein Desktop installiert ist, wird automatisch ein CPU-Powermanager eingerichtet. Beim reinen Serverbetrieb ist dies nicht der Fall. Um dennoch den Stromverbrauch zu senken, kann das Powermanagement relativ einfach nachträglich aktiviert werden.

Voraussetzung:

  • AMD-CPU mit Cool&Quiet
  • Intel CPU, die EIST (Enhanced Intel Speedstep Technology) unterstützt


Installation

apt-get install cpufrequtils


Funktionalität testen

Damit die CPU-Frequenz vom Kernel geändert werden kann, ist ein entsprechender Treiber (Modul) und ein sog. Governor nötig, der die Anpassung vornimmt.

Treiber auswählen

Abhängig vom verwendeten Processor sollte einer der folgenden Treiber ausgewählt werden:

powernow_k6
AMD K6 Prozessor
powernow_k7
AMD K7 Prozessor (Athlon, Duron, Sempron 32 bits)
powernow_k8
AMD K8 Prozessor (Athlon 64, Athlon 64 X2, Turion 64, Sempron 64, Opteron 64)
p4_clockmod
Pentium 4, Celeron D, Pentium D, Celeron M
speedstep_centrino
Pentium M, Core Duo, Core 2 Duo
acpi_cpufreq
Genereller Treiber, der im Zweifel getestet werden kann


Treiber aktivieren:

  • für aktuelle AMD-CPU
modprobe powernow_k8
  • für aktuelle Intel-CPU
modprobe speedstep_centrino

Falls Ein Fehler "FATAL: Error inserting ... No such device" ausgegeben wird, sollte der Gernerische ACPI-Treiber versucht werden:

modprobe acpi_cpufreq

Wenn auch dabei ein Fehler auftritt, unterstützt die verwendetet CPU vermutlich kein Power-Management. Die folgenden Schritte sind damit sinnlos.


Ausgabe der möglichen CPU-Frequenzstufen:

cpufreq-info

Für jeden Core des verwendeten Prozessor werden zahlreiche Informationen wie, z.B. vorhandene Frequenzstufen und die aktuell verwendete, ausgegeben. Nachdem noch kein Powermanagement konfiguriert wurde, wird die maximal mögliche Frequenz verwendet.


Governor konfigurieren

Standardmäßig wird der Governor Performance verwendet. Dieser taktet die CPU permanent mit maximalem Takt. Folgende Governor sind verfügbar:

performance (cpufreq_performance)
Setzt permanent die maximal mögliche CPu Frequenz :
powersave (cpufreq_powersave)
Das Gegenteil von performance. Wählt permanent die niedrigste Taktstufe aus.
ondemand (cpufreq_ondemand)
Takt wird dynamisch, abhänging von der CPU-Last, eingestellt
conservative (cpufreq_conservative)
Ähnlich wie ondemand, aber weniger aggressiv als dieser

Gewünschten Governor installieren (auch mehrere möglich) z.B. ondemand:

modprobe cpufreq_ondemand

Selektiveren des zu verwendenden Governor:

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Falls die CPU mehrere Cores enthält (Dual Core):

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor

Falls die CPU mehrere Cores enthält (Quad Core):

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor

Takt und Governor überprüfen:

cpufreq-info

Als Governor sollte nun ondemand für alle CPU's / Cores ausgegeben werden. Die CPU sollte nun auf der geringsten Taktstufe betrieben werden, falls die CPU-Last relativ gering ist.


CPU Powermanagement permanent aktivieren

Nachdem die Funktionsweise des CPU Powermanagements im vorhergehenden Kapitel verifiziert wurde kann nun das Powermanagement permanent (nach dem Reboot) aktiviert werden.

Kernel Module

vi /etc/modules
  • Das Treibermodul ans Ende anhängen. Z.b. powernow_k8 (siehe oben)
  • Den/die zu ladenden Governors anhängen, z.B. powernow_k8 (siehe oben)


Governor

Mit Hilfe der Datei /etc/default/cpufrequtils kann der standardmäßig anzuwendende Governor ausgewählt werden. Dafür wurde eine Vorlage bei der Installation angelegt. Diese muß zunächst nach /etc/default/cpufrequtils kopiert werden.

cp /usr/share/doc/cpufrequtils/examples/cpufrequtils.sample /etc/default/cpufrequtils

File anpassen:

vi /etc/default/cpufrequtils

Folgende Änderungen vornehmen, um den Governor ondemand auszuwählen:

ENABLE="true"
GOVERNOR="ondemand"
MAX_SPEED=0
MIN_SPEED=0

Funktionscheck

Rechner neu starten. Mit

watch cpufreq-info

Prüfen:

  • der Governor wurde korrekt gesetzt
  • CPU sollte auf niedrigster Taktstufe laufen
  • CPU takt steigt, falls CPU-Last erzeugt wird

Watch-Befehl mit STRG-C beenden.