ubuntuusers.de

cpufreq ignoriert "niedrige" Prozesse nicht

Status: Gelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

Power1Paul1

Anmeldungsdatum:
24. April 2009

Beiträge: 10

Hi, ich habe nach dem Upgrade auf 9.04 herausgefunden, dass die Funktion von cpufreq, Prozesse niedriger Priorität zu ignorieren deaktiviert ist. Somit treiben selbst Programme wie Boinc den Prozessortakt in die höhe. Dies kann man seit dieser Version nur noch in den System-Ordnern einstellen; mit dem Befehl:

/sys/devices/system/cpu/cpu0/cpufreq/ondemand$ echo 1 | sudo tee ignore_nice_load 

war das auch möglich.

Doch jetzt das Problem: In unregelmäßigen Abständen springt der Takt trotzdem in die höhe, obwohl kein weiterer Prozess den Prozessor mehr als 15% belastet. Ist das ein bekannter Fehler von diesem Kernel oder woran könnte es liegen? Ich habe einen AMD 64 3200+ Prozessor.

Vielen Dank im Voraus!

PowerPaul

Power1Paul1

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 10

Anscheinend kann cpufreq seitdem er in den Kernel gewandert ist nicht mehr überprüfen um welche Prozesse es sich handelt. (habe gemerkt, dass er auch nicht bei Vollast hochtaktet... also er bleibt beim sporadischen hochtakten)

Also habe ich powernowd die Aufgabe übergeben, indem ich das Paket geladen und wie im Wiki eingestellt habe. Dann noch den Kernel-Govenor auf "Userspace" gestellt → Systemstartprozeduren eingestellt und fertig.

gelöst.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

seltsam, obwohl ich das Problem nicht ganz verstehe: Du hast das Problem, dass die CPU sporadisch "unmotiviert" hochtaktet, aber unter "Volllast" nicht?

Was heißt denn Volllast bzw. wie erzeugst du Volllast?

Abgesehen davon: der Ondemand-Governor taktet in der Tat schnell hoch und schnell runter. Hast du es mal mit "Conservative" probiert?

Die Funktion "ignore-nice-load" kannte ich bis eben nicht, muss ich mich mal schlau machen. ☺

Gruß, noisefloor

Power1Paul1

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 10

Hallo noisefloor.

Also ich habe die Funktion "ignore-nice-load" aktiviert, damit der Prozessor nicht bei "unwichtigen" Prozessen (niedrige Priorität) hochtaktet. Nur scheint es mir so, dass der Govenor, seitdem er im Kernel gelandet ist nicht mehr die Prozesspriorität beobachten kann. Er bleibt also durchgängig auf niedrigster Stufe...

Allerdings taktet er zeitweise dann doch sehr kurz hoch, obwohl nur ein niedriger Prozess (bei mir Boinc) den Prozessor auslastet... (Boinc läuft bei mir durchgängig auf 100% also sollte er doch eigentlich zumindest durchgängig auf höchster Stufe laufen, wenn er nicht die Priorität auslesen kann)

Unter Conservative ist es noch seltsamer... er ignoriert die niedrigen Prozesse beim hochtaktetn, macht er das allerdings doch wegen anderen Prozessen, so taktet er danach nicht mehr runter... kommt mir so vor, als könne er den niedrigen Prozess nur beim hochtakten ignorieren. Allerdings taktet er manchmal auch gar nicht hoch...

"Auslasten" tue ich meinen Prozessor nur durch Entpacken von rar-Archieven... gibt es ein besseres Programm zur Fehleranalyse oder zumindest zur kompletten Auslastung des Systems?... Darin kenne ich mich gar nicht aus 😳

PP

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

"Auslasten" tue ich meinen Prozessor nur durch Entpacken von rar-Archieven... gibt es ein besseres Programm zur Fehleranalyse oder zumindest zur kompletten Auslastung des Systems?

Das ist schon ok. Wollte nur sichergehen, dass du "auslasten" nicht mit "viele Progs" offen gleichsetzt. Packen bzw. entpacken oder Videokodierung sind die "üblichen" Methoden, mit denen man recht einfach die CPU auslasten kann.

Der Scaling Governor gehört schon immer zum Kernel, also zumindest Ondemand, Powersave, Conservative und Performance. Der Powernowd ist die Alternative, die im Userspace läuft.

Das von dir beschriebene Verhalten hört sich in der Tat etwas seltsam an. Kann aber an vielen liegen, schwer zu sagen.

Wie viele der Governor wirklich wechselt kannst im im Verzeichnis /sys/devices/system/cpu/cpu0/cpufreq/stats nachschauen. Außerdem könntest du es mit einem anderen Scaling_Driver versuchen, wobei bei neueren Prozessoren eigentlich "acpi-cpufreq" immer Standard ist.

Oder halt den powernowd nehmen.

Gruß, noisefloor

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

habe mal ein wenig in der Kernel-Doku gelesen. Also:

ignore_nice_load wirkt nur beim Ondemand-Governor, bei den anderen nicht. Die Doku schreibt dazu:

ignore_nice_load: this parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilisation' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. This is useful if you are running a CPU intensive calculation on your laptop that you do not care how long it takes to complete as you can 'nice' it and prevent it from taking part in the deciding process of whether to increase your CPU frequency.

Heißt: Die Priorität des Prozesses spielt nur dann eine Rolle, wenn du sie explizit von Hand zugewiesen hast. Automatisch vergebene Prioritäten werden ignoriert.

Gruß, noisefloor

Power1Paul1

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 10

Hallooo,

Also ich verwende inzwischen powernowd und es klappt zufriedenstellend...

Dass ignore_nice_load nur wirkt, wenn man explizit den Prozess herunterstuft, kann ich mir nicht vorstellen... in 8.10 war es nicht so. Das ergäbe auch meines Erachtens wenig Sinn, die Steuerung so umzustellen. Es ist wohl einfacher den nice-Wert zu ermitteln, als zu schauen welche Priorität geändert wurde.

Es scheint also so, dass das nur ein Problem bei meinem System ist und die Funktion nicht deaktiviert wurde. Dann sollte ich doch mal in Betracht ziehen das OS neu aufzuspielen, wenn ich Zeit habe (habe noch weitere lästige Fehler nach dem Upgrade gehabt, die aber nicht zum Thema passen)

Also vielen Dank an noisefloor für die Infos!

Grüße PowerPaul

ska.ndal

Anmeldungsdatum:
5. Dezember 2007

Beiträge: 126

Power1Paul1 schrieb:

Es scheint also so, dass das nur ein Problem bei meinem System ist und die Funktion nicht deaktiviert wurde.

du bist nicht allein... habe genau dasselbe problemchen.. werde jetzt mal eure tipps ausprobieren und dann mal in einer woche gucken, wie es beim bärchen(karmic koala) aussieht..

Power1Paul1

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 10

ES FUNKTIONIERT WIEDER! Also habe jetzt 9.10 wieder ganz neu aufgesetzt und jetzt funktioniert der cpufreq-govenor wieder richtig... woran es lag dass ich davor zu powernowd umsteigen musste weiß ich nicht. Beim Koala ist es standardmäßig zwar auch deaktiviert aber lässt sich einfach wieder aktivieren:

Als Test wäre es nicht verkehrt erstmal folgende Befehle einzugeben:

echo ondemand | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 

Dieser Befehl aktiviert den "Ondemand"-Govenor (der meistens sowieso voreingestellt ist)

echo 1 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load 

Dieser aktiviert das Verhalten Prozesse mit niedriger Priorität zu ignorieren.

Das sollte funktionieren, ist aber nach jedem Neustart von neuem durchzuführen. Deshalb ist sysfsutils sehr praktisch:

Das Paket installieren, dann mit

sudo gedit

einen Texteditor mit root-Rechten starten. Damit muss man dann die Datei :

/etc/sysfs.conf

öffnen und folgendes einfügen:

devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand
devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load = 1

Dann wird automatisch beim Start des Systems alles eingestellt.

Hoffe das hilft weiter.

Grüße PP

Antworten |