it-swarm.com.de

Deaktivieren Sie den CPU-Skalierungsdämon "ondemand"

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.

Anstatt die Ausführung des Skripts /etc/init.d/ondemand (wie von George empfohlen) 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 Ausführungsberechtigung (Sudo chmod -x /etc/init.d/ondemand) wird möglicherweise überschrieben, wenn das Paket aktualisiert wird.

32
LassePoulsen

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 unbemerkt.

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.

5
Oli

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 Starten Sie die CPU mit benutzerdefinierten Frequenzen.
  • 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 entsprechend der aktuellen Last. Skaliert die Frequenz langsamer als bei Bedarf.
  • schedutil Scheduler-gesteuerte CPU-Frequenzauswahl

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

2
Mrskman

Sie könnten das rcconf Debian-Tool installieren:

Sudo apt-get install rcconf

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

2
Manuel

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

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, dass er die Frequenz für jede CPU einzeln einstellen kann, während die Hardware tatsächlich nur das Einstellen der Frequenz 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-Regler 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 nichts an den Lüftergeräuschen geändert, wenn die CPUs ständig mit ihrer vollen Frequenz betrieben wurden. Ich nehme an, wenn eine CPU im Leerlauf ist, hat eine niedrigere oder höhere Frequenz keinen großen Einfluss auf den Stromverbrauch.

1
Johan Boulé

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.

0
Don sild