So stellen Sie die CPU-Frequenz ein. unter Linux?


7

Ich verwende dieses eingebettete ARM9 SAM9G25-System, das beim Einschalten nur einige Sekunden online ist. Da ich den gesamten Prozess beschleunigen möchte, möchte ich die CPU-Frequenz überprüfen und auf max. Geschwindigkeit.

Der Linux 2.6.39-Kernel wird hier mit Buildroot 2013.10 generiert. Wenn googeln um es am Ende immer führt zu der „CPU Frequenz Skalierung “ Option, aber das ist nicht das, was ich suche. Ich glaube, es muss eine Art statischen Wert für die CPU geben, damit zB: der Kernel einer 1-GHz-CPU sagt, dass sie mit max. 100 MHz.

Kann mich jemand in die richtige Richtung weisen? Danke für die Unterstützung.

Antworten:


8

Sie müssen überprüfen, welchen Gouverneur Sie verwenden. Dieser Typ wird Ihren Taktwechsel ziemlich stark beeinflussen, abhängig von der Anforderung, die der Prozessor hat. Wahrscheinlich ist der Gouverneur, den Sie brauchen ,:

  • Leistung: scaling_min_freqund scaling_max_freq willauf max.

So ändern Sie den Prozessorfrequenzregler : cpupower frequency-set -g performance. Es ist implizit, dass Sie einen solchen Governor installiert haben.

Die Werte der Skalierung , dass Sie Zugriff haben , sind mit dem Prozessor verbunden Sie verwenden , und die Funktionen auf dem Prozessor - Takttreiber implementiert ( powernow-k8, powernow-k10, p4-clockmod...). Mit dem Befehl cpufreq-infovon können cpufrequtilsSie weitere Informationen über Ihren Prozessor abrufen, z. B. die festgelegten Grenzwerte für die Taktung, die Frequenzschritte, den zulässigen Frequenzbereich und den geladenen Regler.

Wenn Sie Ihre tatsächliche Uhr überwachen möchten: watch grep \"cpu MHz\" /proc/cpuinfo

Auf sysfsden folgenden Seiten finden Sie weitere interessante Informationen zu diesem Thema und den zugehörigen Teilen wie und Befehle:


Vielen Dank für diese ausführliche Antwort. Ich habe vergessen zu erwähnen, dass die Änderung der CPU-Frequenz. sollte die Startzeit beeinflussen (oder hauptsächlich beeinflussen). Wenn ich das richtig verstanden hätte, könnte ich die Geschwindigkeit mit einem Governor aus dem Userspace ändern, sollte aber vom Beginn des Kernel-Starts an einen bestimmten Wert haben, sodass dies nicht die Lösung zu sein scheint. Gibt es nicht eine Art Variable dafür?
user3085931

2
In dem zweiten von @nwildner bereitgestellten Link heißt es: "Die Konfigurationsdatei für cpupower befindet sich in / etc / default / cpupower. Diese Konfigurationsdatei wird von einem Bash-Skript in / usr / lib / systemd / scripts / cpupower gelesen, das aktiviert ist von systemd mit cpupower.service. Möglicherweise möchten Sie cpupower.service aktivieren, um beim Booten zu starten. " Sie können diese Einstellung also verwenden, um sie beim Booten zu aktivieren. Beachten Sie, dass ich sehr überrascht wäre, wenn Sie durch Ändern dieser Einstellung einen signifikanten Geschwindigkeitsschub erzielen würden. Das Hauptproblem beim Booten ist die Festplattengeschwindigkeit, nicht die CPU (die normalerweise auf die Daten wartet).
Huygens

Andere "Tunnables" sind die Größe Ihrer initrd / initramdisk und welche Dienste werden beim Booten gestartet. Diese zu optimieren wäre effektiver als die CPU-Frequenz in diesen frühen Stadien zu betrachten;)

Ist dies wirklich die einzige Möglichkeit, die Frequenz zu ändern? Was passiert dann, wenn Sie die CPU-Frequenz deaktivieren? Skalierung in der Linux-Menükonfiguration?
user3085931

Es wird Ihre CPU immer mit voller Geschwindigkeit laufen lassen. Einige Motherboards haben Optionen / Optimierungen, um diese Funktion ebenfalls zu deaktivieren, und Ihr Betriebssystem sieht nur die maximale Uhr als "verwendbare" Geschwindigkeit;)
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.