ubuntuusers.de

powernowd

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.


Anmerkung: Je nach Prozessortyp stehen gegebenenfalls nicht alle in diesem Artikel beschriebenen Abfrage- und Einstellmöglichkeiten zur Verfügung. Ab Ubuntu 11.04 ist das Programm nicht mehr in den offiziellen Paketquellen enthalten.

Der Dienst powernowd dient zur Steuerung des Prozessor-Taktes bei CPUs mit AMDs PowerNow!- bzw. Cool'n'Quiet-Technologie und Intels Speedstep-Technologie sowie auch für Intel Pentium 4 Prozessoren.

Im Gegensatz zu den Kernel-eigenen Werkzeugen läuft powernowd im Userspace und bietet andere (in Teilen mehr) Einstellmöglichkeiten. Diese sind zwar nicht so detailliert wie bei cpufreqd, aber für den Alltagsgebrauch mehr als ausreichend.

Geschwindigkeitssteigerungen lassen sich durch Ändern der Einstellungen nicht erreichen, da der Takt nicht über den Standard-Wert erhöht werden kann. Vielmehr ist es mit dem powernowd möglich, die optimale Mischung aus Verarbeitungsgeschwindigkeit und minimaler Prozessorverlustleistung (⇒ weniger Abwärme, maximale Batterielaufzeit bei Laptops) einzustellen.

Installation

Powernowd befindet sich in den Paketquellen

  • powernowd (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install powernowd 

Oder mit apturl installieren, Link: apt://powernowd

In der Vergangenheit wurde es bereits mit der Grundinstallation installiert und automatisch gestartet, was aber spätestens seit Ubuntu 10.04 nicht mehr der Fall ist.

Hinweis:

powernowd funktioniert nur, wenn ein entsprechendes Speedstepping-Kernelmodul für den Prozessor geladen ist. Details hierzu findet man bei Prozessortaktung.

Verwendung

Die Modi von powernowd

Der Dienst lässt sich in vier verschiedenen Modi starten, die mit dem Parameter -m ausgewählt werden. Hier eine Beschreibung der Modi:

Modus "0", SINE

In diesem Modus wird die CPU-Frequenz, sobald die CPU-Last einen Wert über 80% erreicht, in Schritten von 100 Mhz erhöht, bzw., wenn die CPU-Last unter 20% fällt, in 100-Mhz-Schritten gesenkt.

  • Vorteil: gleichmäßiges Takten

  • Nachteil: Erreichen der max. bzw. min. Frequenz dauert ein wenig

Modus "1", AGGRESSIVE

Dieser Modus taktet die CPU sofort auf die maximale Frequenz, sobald eine CPU-Last über 80% erreicht wird. Sinkt die CPU-Last unter 20%, wird der Takt in 100-Mhz-Schritten wieder gesenkt.

  • Vorteil: Benötigt ein Prozess viel Rechenleistung, kann ihm diese durch das sprunghafte Hochtakten schnell zur Verfügung gestellt werden.

  • Nachteil: Benötigt ein Prozess nur kurze Zeit Rechenleistung, so wird unnötig auf die max. Frequenz getaktet und das Heruntertakten auf die stromsparende Minimal-Frequenz dauert relativ lange.

Modus "2", PASSIVE

Die CPU wird in diesem Modus sofort auf die minimal mögliche Frequenz getaktet, falls die CPU-Last unter 20% sinkt. Erreicht die CPU-Last allerdings 80%, wird langsam in 100-Mhz-Schritten die Frequenz erhöht.

  • Vorteil: Sobald keine hohe Rechenleistung mehr benötigt wird, wird auf die stromsparende Minimal-Frequenz getaktet.

  • Nachteil: Sollte ein Prozess eine hohe Rechenleistung erfordern, wird diese erst nach einiger Zeit erreicht aufgrund des nur schrittweisen Hochtaktens.

Modus "3", LEAP

Dieser Modus sorgt dafür, dass sofort auf die max. Frequenz getaktet wird, falls die CPU-Last den Schwellenwert 80% erreicht, bzw. dass sofort auf die minimale Frequenz getaktet wird, falls der Schwellenwert 20% unterschritten wird.

  • Vorteil: schnelle Taktanpassung

  • Nachteil: keine Zwischenschritte

Weitere wichtige Parameter

Die Schwellenwerte für die CPU-Last, bzw. die Schrittweite für die Taktanpassung lassen sich über Parameter an die eigenen Bedürfnisse anpassen.

  • -u <Wert> verändert den oberen Schwellenwert, der per default auf 80 (%) gesetzt ist. Mögliche Werte sind Zahlen von 0 bis 100. Jedoch Vorsicht: Gibt man 100 an, so kann der Schwellenwert nicht mehr überschritten werden, also findet kein Hochtakten mehr statt.

  • -l <Wert> legt den unteren Schwellenwert fest. Der Standardwert ist hier 20 (%). Der mögliche Wertebereich liegt hier bei 0 bis 100. Achtung: Gibt man 0 an, so kann dieser Wert nicht mehr unterschritten werden und es wird nicht mehr heruntergetaktet.

  • -s <Wert> bestimmt die Schrittweite des Taktens. Standardmäßig ist dieser Wert bei 100.000 (Khz), also umgerechnet 100 Mhz.

Einrichten

Um vorab die richtigen Einstellungen für die Parameter zu ermitteln, empfiehlt es sich, diese vorerst per Hand zu setzen. Als erstes sollte man die aktuelle Instanz von powernowd beenden, indem man in einem Terminal [1] folgendes eingibt:

sudo /etc/init.d/powernowd stop 

Nun kann man powernowd von Hand starten. Zum Beispiel mit

sudo powernowd -m 2 -l 50 -u 90 -s 50000 -v 

Der Parameter -v steht hier für verbose, was bedeutet, dass die Settings, die man spezifiziert hat, noch einmal zur Kontrolle ausgegeben werden:

  powernowd: Settings:
  powernowd:   verbosity:        1
  powernowd:   mode:             2     (PASSIVE)
  powernowd:   step:            50 MHz (50000 kHz)
  powernowd:   lowwater:        50 %
  powernowd:   highwater:       90 %
  powernowd:   poll interval: 1000 ms
  powernowd: Found 1 cpu:
  powernowd:   cpu0: 600Mhz - 1600Mhz

In diesem Fall hat man also nun powernowd im PASSIV-Modus gestartet. Die Taktschrittweite beträgt 50 Mhz und die Schwellenwerte liegen bei 50% für die untere, bzw. 90% für die obere Schwelle. Das GNOME-Applet "Überwachung der Prozessortaktstufen" eignet sich sehr gut, um im Panel zu sehen, wie powernowd den Prozessor taktet. Alternativ kann man auch in einem Terminal [1] den Befehl watch nutzen:

sudo watch -n 1 cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 

eingeben. Der Parameter -n 1 für watch stellt das Aktualisierungsintervall ein. In diesem Fall wird jede Sekunde aktualisiert.

Man kann nun etwas herumexperimentieren, welche Einstellungen einem am Besten passen. Man sollte aber immer sicherstellen, dass die aktuelle Instanz von powernowd beendet ist, bevor man einen erneuten Versuch mit anderen Werten startet, da mehrere Instanzen sich gegenseitig behindern.

Automatisches Starten mit den ertesteten Parameterwerten

Damit powernowd die im obigen Abschnitt ertesteten Parameterwerte auch beim Systemstart anwendet, muss man im Verzeichnis /etc/default/ eine Datei namens powernowd erstellen (Editor mit Root-Rechten, [2]): Dem obigen Beispiel entsprechend muss man in diese Datei nun folgende Zeile hinzufügen:

OPTIONS="-q -m 2 -l 50 -u 90 -s 50000"

Das -q steht für "quiet", also keine Ausgabe außer im Fehlerfall.

Zu beachten ist jedoch, dass man unter GNOME dem gnome-power-manager zuvor die Konfiguration von powernowd aus der Hand nehmen muss, da das Applet sonst die Werte mit seinen eigenen überschreibt. Dies macht man mit dem GNOME Konfigurationseditor. Dort wird bei folgenden Schlüsseln der vorhandene Wert durch nothing ersetzt:

"apps -> gnome-power-manager -> cpufreq -> policy_ac"

bzw.

"apps -> gnome-power-manager -> cpufreq -> policy_battery"

Alternativen

Alternativ kann man das Taktverhalten des Prozessors auch über die Laptop Mode Utilities beinflussen. Oder man wählt einen der Kernel-eigenen Governor. Details dazu findet man im Artikel Prozessortaktung.

Problemlösungen

Ab Ubuntu 9.04 kann es passieren, das sich powernowd und der neue Dienst ondemand ins Gehege kommen. Dann hilft die Lösung, die im Artikel rc.local (Abschnitt „Probleme-und-Loesungen“) beschrieben ist.

Diese Revision wurde am 3. März 2015 15:34 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Server