Ich möchte den CPU-Frequenzskalierungsregler für alle Kerne gleichzeitig festlegen, anstatt ihn für jeden Kern einzeln auszuführen. Gibt es eine Möglichkeit, dies zu tun?
(Ich weiß, es wäre einfach, den Gouverneur anzusprechen /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
, aber ich bin nicht auf der Suche nach einer benutzerdefinierten Lösung.)
Antworten:
Ich bin immer noch ein Linux-Neuling, aber denkst du nicht, dass cpufrequtils es dir erlaubt, indem du es benutzt?
-r
Flag wird verwendet, um die Änderung für alle ("hardwarebezogenen") Kerne festzulegenquelle
cpufreq-set
in der Tat fehlt letztendlich einfache, aber benötigte Funktionalität. Viele Leute, wie dieser Stimmenzähler eindeutig zeigt, sind sich dessen einfach nicht bewusst, weil seine Beschreibung einfach irreführend ist, um das Ganze abzurunden.Ich habe viel gegoogelt und denke, das ist einfach nicht möglich. Deshalb habe ich meinen folgenden Einzeiler hinzugefügt
.bashrc
:Jetzt kann ich so etwas ausführen
setgov ondemand
und alle Kerne werden auf den On-Demand- Gouverneur umgestellt .quelle
Der kürzeste Befehl zum Ändern des Governors aller Kerne lautet wie folgt:
Sie könnten es zu .bashrc hinzufügen, wie in htorque erwähnt, Sie müssen es als root ausführen
sudo setgov performance
:quelle
Sie können auch die Bash-Code-Vervollständigung hinzufügen, während wir dabei sind:
quelle
Die Art und Weise, wie ich dies einstelle, bleibt unverändert, da der Gouverneur ab Ubuntu 16.04 (oder neuer) nach ca. 30 Sekunden standardmäßig auf Powersave zurückgesetzt wird.
Setzen Sie diesen (eine Zeile) Code ein (danke, mit freundlicher Genehmigung von switch87 in der vorherigen Antwort)
in die Datei im Verzeichnis
Meins ist eine Zeile über "exit 0" und unkommentiert unter den kommentierten.
"rc.local" für diejenigen, die es nicht wissen, führt es den Befehl als sudo aus. Jeder Befehl, der den Governor zu ändern scheint, muss als sudo ausgeführt werden.
Damit kann der Governor wieder auf Powersave zurückgesetzt werden und der Code wird nach 60 Sekunden als sudo ausgeführt, um die Leistung wiederherzustellen.
Ändern Sie die "60" (in dem Code, den Sie kopieren) in die Zeit (in Sekunden. 60 = 60 Sekunden = 1 Minute), die Sie benötigen, um den Befehl und die "Leistung" (im Befehlsteil) auf den gewünschten Regler zu verschieben ändern.
Nach stundenlangem Suchen habe ich keine dauerhaftere Lösung dafür gefunden. Ich denke, in ein paar Minuten ist es auf Energiesparmodus, wenn dies die beste Lösung ist, die ich gefunden habe, oder? Richtig.
Dies ist nicht die beste Lösung, macht es aber etwas dauerhafter, nachdem es das kleine Umschalten auf Powersave macht. Wenn Sie hochfahren und in ein Spiel oder etwas anderes springen möchten, müssen Sie eine Minute auf den Code warten, den Sie gerade eingegeben haben, um ihn aus dem Energiesparmodus zurückzuschalten, oder das Timing verringern (je nachdem, wie lange es dauert) alles, um hochzufahren, damit es wieder richtig funktioniert).
Und, wie immer, um auf die Standardeinstellungen zurückzukehren (ich habe einige Probleme mit der Überhitzung der PCs der Leute gesehen, weshalb sie diese möglicherweise standardmäßig auf Powersave eingestellt haben), entfernen Sie einfach den Code aus rc.local und starten Sie ihn neu oder schalten Sie ihn zurück manuell mit dem CPU-Symbol-Indikator wechseln oder ausführen;
im Terminal und oder neu starten.
quelle
Sie können dies für alle Kerne gleichzeitig ausführen
quelle
Basierend auf der Antwort von switch87 habe ich ein einfaches Skript erstellt
cpufreq-set-all
, das es ermöglicht,cpufreq-set
mit allen CPUs andere Dinge zu tun :Jetzt kann es (
chmod +x
natürlich danach) so aufgerufen werden :oder
quelle