Deaktivieren Sie den CPU-Skalierungsdämon "ondemand"


13

Ich habe einen Server, auf dem seit dem Upgrade auf 10.04 der Daemon für die CPU-Skalierung "ondemand" ausgeführt wird. Warum würde es das automatisch installieren? Ich möchte nicht, dass mein Server auf Kosten der Leistung Strom spart.


5
Sie verwechseln den On-Demand-Gouverneur mit dem Powersave-Gouverneur.
Leon Nardella

3
Bin mit Leon einverstanden. Ondemand beschleunigt, wenn etwas zu tun ist, und verlangsamt sich, wenn es im Leerlauf ist. Dies schränkt die Fähigkeit der CPU, die Geschwindigkeit zu ändern, nicht ein, sondern nutzt sie aus.
Maco


Es erhöht die Antwortzeiten auf einem meist inaktiven Server.
Ein Student an einer Universität

Antworten:


32

Anstatt die Ausführung des /etc/init.d/ondemand(von George empfohlenen) Skripts zu deaktivieren , sollten Sie den Befehl this verwenden

sudo update-rc.d ondemand disable

Damit das Init-System das Skript nicht startet, ist dies die anerkannte Methode! Das Deaktivieren der exec-Berechtigung ( sudo chmod -x /etc/init.d/ondemand) wird möglicherweise überschrieben, wenn das Paket aktualisiert wird.


Wenn ich mache: sudo update-rc.d other_governor enable, wird ein dauerhaft gewünschter Governor gesetzt?
userDepth

5

Die Frequenzskalierung ist nicht statisch. Sobald es etwas zu tun gibt, springt die CPU in Aktion, die P-Zustände werden erhöht und alles fliegt.

Es ist aktiviert, weil es allgemein als eine gute Sache angesehen wird. Spart Energie (gut für Ihren Geldbeutel und die Umwelt). Hält die Hitze niedrig ( so wichtig in einem Serverraum). Und es ist ziemlich unmerklich.

Außerdem können Sie auf modernen Intel-Chips, wenn Sie die Skalierung aktiviert haben, "Turbo-Boost" verwenden, bei dem ein Kern eine Zeit lang mit über dem Standard liegenden Geschwindigkeiten läuft. Dies ist sehr nützlich für Spitzen von Arbeiten mit einem Thread. Ohne aktivierte Skalierung erhalten Sie dies nicht.


Wie lange dauert es, bis die Skalierung auf einem P4 Xeon abgeschlossen ist?
Ein Student an einer Universität

Kam über diese alte Antwort und obwohl ich mit Oli einverstanden bin, gibt es bestimmte Benutzerfälle, in denen Sie die CPU-Skalierung deaktivieren möchten - Audio-Aufnahme zum Beispiel. Wenn Sie kein spezielles Bedürfnis haben, lassen Sie es bei Bedarf
Panther

Kann man zufällig wissen, bei welchem ​​Prozess sich die Min / Max-Werte der Frequenzskalierung ständig ändern? Es ändert sich immer und ich weiß nicht warum. siehe askubuntu.com/questions/800797/how-to-enable-turbo-boost
Sebastien Lorber

2

Sie könnten das Debian- Tool rcconf installieren :

sudo apt-get install rcconf

Deaktivieren Sie dann den Dienst "ondemand" von dort aus.


Ich kann keine Warnung vor Verfall über das Tool rcconf finden: Sie haben den Punkt verpasst und eine völlig falsche URL angegeben. Ich meinte nicht Archs Art, rc-Skripte zu konfigurieren, sondern das Debian-Tool und das sieht lebendig und gut aus.
Manuel

Vielen Dank für den Hinweis und den hilfreichen Link! (Ich habe meinen anfänglichen und falschen Kommentar gelöscht)
verrückt nach natty

Bearbeitet auch die ursprüngliche Antwort!
Manuel

2

Setzen Sie alle CPUs auf Performance Governor:

for GOVERNOR in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; \
do \
    echo "performance" | sudo tee $GOVERNOR; \
done

Alle vom Linux-Kernel unterstützten Governors:

  • Leistung Starten Sie die CPU mit der maximalen Frequenz.
  • Powersave Starten Sie die CPU mit der minimalen Frequenz.
  • userspace Führt die CPU mit benutzerdefinierten Frequenzen aus.
  • ondemand Skaliert die Frequenz dynamisch entsprechend der aktuellen Last. Springt zur höchsten Frequenz und dann möglicherweise zurück, wenn die Leerlaufzeit zunimmt.
  • konservativ Skaliert die Frequenz dynamisch gemäß der aktuellen Last. Skaliert die Frequenz langsamer als bei Bedarf.
  • schedutil Schedulergesteuerte CPU-Frequenzauswahl

Siehe https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt


2
Beachten Sie, sudo echo > ...dass Sie nicht das tun, was Sie erwarten: askubuntu.com/q/230476/158442
muru

1

Um sicherzustellen, dass alle CPUs auf einem Ubuntu-Desktop oder -Server kontinuierlich mit maximaler Leistung ausgeführt werden, führen Sie Folgendes aus:

sudo chmod -x /etc/init.d/ondemand

an der Shell-Eingabeaufforderung und geben Sie Ihr Passwort ein. Dadurch wird das Shell-Skript deaktiviert, mit dem alle CPUs mit der Geschwindigkeit "OnDemand" ausgeführt werden, sodass standardmäßig die volle Geschwindigkeit (Leistung) verwendet wird. Sie müssen neu starten, damit dies wirksam wird.

Ich habe dies nur in Ubuntu Jaunty 9.04 getestet, aber es sollte funktionieren und auf keiner Ubuntu-Version Probleme verursachen.

Ich denke, die Ubuntu-Standardeinstellungen sind dafür seltsam. Ein Desktop oder Server sollte meiner Meinung nach mit voller Geschwindigkeit laufen.

Grüße, George


1
Ich finde es nicht seltsam. Mobil ist sicherlich das kritischste Szenario für das Energiesparen. Eine Reduzierung des Stromverbrauchs bedeutet jedoch auch weniger Lüftergeräusche in einem Desktop-Szenario und weniger Wärme in einem Serverraum. Ständig mit maximaler Geschwindigkeit zu laufen, ist eine Verschwendung, die nur in seltenen Fällen wirklich notwendig ist, wenn ondemandes schief geht.
Bobince

@bobince - Sie haben wahrscheinlich Recht, aber bei einem Desktop ist mir aufgefallen, dass OnDemand im Vergleich zur Leistung nur schleppend reagiert, und ich denke, der Computer kann mit der oben genannten Änderung immer noch ordnungsgemäß schlafen. Es sollte eine Option in System / Administration oder System / Preferences sein.
George Gesslein II

Richtig, der einzige Ort, an dem dies Sinn macht, sind Laptops, bei denen die Ladezeit durch Skalieren der CPU verkürzt und die Akkulaufzeit verlängert wird.
LassePoulsen

die Umwelt retten, jemand?
verrückt nach natty

1

Auf einigen Systemen ist der "On-Demand" -Gouverneur leider defekt.

Dies ist der Fall für "Intel (R) Core (TM) 2 Quad CPU Q9300 @ 2.50GHz" und Kernel 2.6.32-42.

Der Kernel glaubt, die Frequenz für jede CPU einzeln einstellen zu können, während die Hardware das Einstellen der Frequenz nur für Gruppen von mehreren CPUs (z. B. CPU 0 und 1 zusammen und CPU 2 und 3 zusammen) erlaubt.

Sie können feststellen, dass der Kernel sich dessen nicht bewusst ist, indem Sie sich die Dateien / sys / devices / system / cpu / cpu * / cpufreq / affect_cpus ansehen, die "0", "1", "2", "3" enthalten. anstelle von "0 1", "0 1", "2 3", "2 3".

Der sichtbare Effekt dieses Missmatchs ist ein Single-Thread-Prozess, der auf einer CPU mit voller Geschwindigkeit beginnt (der On-Demand-Regler reagiert schnell) und dann nach etwa 20 Sekunden (abhängig von den Einstellungsdetails) einen Teil seiner Geschwindigkeit verliert.

Der Grund dafür ist, dass das Betriebssystem mit dem On-Demand-Gouverneur in regelmäßigen Abständen niedrige Frequenzen auf die im Leerlauf befindlichen CPUs anwendet und nicht erwartet, dass dies implizit auch die Frequenz unserer ausgelasteten CPU ändert. Es ist nicht einmal sichtbar, wenn Sie sich / sys / devices / system / cpu / cpu * / cpufreq / * cur_freq oder / proc / cpuinfo ansehen, das Betriebssystem ist sich dessen einfach nicht bewusst!

Auf diesen Systemen besteht die Lösung darin, auf den einfachen Leistungsregler zurückzugreifen.

PS: In meinem Fall hat sich am Lüftergeräusch nichts geändert, wenn die CPUs ständig mit ihrer vollen Frequenz betrieben werden. Ich nehme an, wenn eine CPU im Leerlauf ist, hat eine niedrigere oder höhere Frequenz keinen großen Einfluss auf den Stromverbrauch.


0

Ich habe einen neuen Prozessor AMD Athlon II X4 631 (Fusionsprozessor für Sockel FM1) und er spart keinerlei Energie (ich habe ihn mit Energiemessgerät betrachtet)! Ich habe keinen Turbokern, daher brauche ich keine On-Demand-Einstellung. Die meisten neuen Prozessoren sparen Energie von selbst.

Beim Benchmarking gibt es einen kleinen Unterschied im Bereich von 1-2%, wenn man On-Demand- und Performance-Einstellungen vergleicht.


Willkommen bei AskUbuntu! Möglicherweise möchten Sie Ihre Aussagen mit vollständigen Statistiken / Recherchen untermauern, da Ihre Antwort als Meinung und nicht als recherchierte Antwort missverstanden werden kann.
Oyibo

Das ist auch falsch, Apple bekommt diese Woche Ärger, weil es Geräte verlangsamt, um Strom zu sparen
Xen2050

-1

Dies ist alt, aber da es von niemandem erwähnt wurde, möchte ich der Vollständigkeit halber hinzufügen, dass das Argument, dass eine CPU, die mit maximaler Geschwindigkeit läuft, Strom verschwendet, Wärme, Lüftergeräusche usw. erzeugt, FALSCH ist .

Nahezu alle modernen CPUs, insbesondere Desktop- / Server-CPUs, werden im Leerlauf in den Tiefschlafmodus versetzt (google race to idle.).

Die Spannungsskalierung spart wahrscheinlich mehr Strom. Auf Laptops kann dies die Laufzeit etwas verlängern. Auf Desktops und Servern, auf denen Performance Governor ausgeführt wird, ist dies jedoch für die meisten „normalen“ Benutzer (die keine Serverfarmen oder ähnliches betreiben) in Ordnung.

Ich benutze Performance Gov mit meinem i7-2600k und die CPU-Temperatur liegt normalerweise bei 30 ° C.


Das ist einfach auch falsch. Überwachen Sie die CPU-Temperaturen und ändern Sie die Frequenzen, um sich selbst ein Bild zu machen (es sei denn, Ihr System implementiert sie nicht vollständig / korrekt). Siehe auch den Apple-Link, klingt nach regulärer Frequenz- / Geschwindigkeitsskalierung
Xen2050

@ Xen2050, um zu sehen was für dich? Nehmen Sie an, dass eine CPU, die 2 Sekunden lang bei 70 Grad Celsius läuft, möglicherweise mehr Strom verbraucht als eine, die 5 bis 6 Sekunden lang bei 60 Grad läuft, oder etwas in diese Richtung? Es ist nicht so einfach, die CPU-Temperatur in einem bestimmten Moment zu überwachen.
Denis

@ Xen2050 Ihr Link verweist auf das iPhone, bei dem es sich um einen völlig anderen Arch oder Prozessor handelt. Ich habe darauf hingewiesen, dass die Spannungsskalierung in Kombination mit einem bestimmten Regler zum Beispiel auf Laptops helfen könnte, und habe Desktop- (Workstation-) und Serverprozessoren ausdrücklich erwähnt, aber tatsächlich gibt es das, wovon ich sprach, seit Jahren auch auf Telefonen ( In diesem Fall ist die Situation wahrscheinlich komplizierter. Möglicherweise ist ein geeigneter Regler erforderlich, damit die MPU einen bestimmten C / P-Zustand ordnungsgemäß nutzt. Wie auch immer, lesen Sie noch einmal, was ich eingegeben habe, und googeln Sie "Race to Idle" und Prozessor Deep Sleep-Modi.
Denis
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.