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.
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.
Antworten:
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.
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.
Sie könnten das Debian- Tool rcconf installieren :
sudo apt-get install rcconf
Deaktivieren Sie dann den Dienst "ondemand" von dort aus.
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:
Siehe https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt
sudo echo > ...
dass Sie nicht das tun, was Sie erwarten: askubuntu.com/q/230476/158442
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
ondemand
es schief geht.
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.
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.
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.