Ubuntu und Prozessorgeschwindigkeitserkennung

12

Ich habe einen älteren Laptop, den ich als Media Center auf meinem Fernseher verwende, und normalerweise installiere / installiere / deinstalliere ich verschiedene Betriebssysteme und Apps, um einen möglichst reibungslosen Betrieb zu gewährleisten.

Eine Sache, die mir aufgefallen ist, war sehr seltsam. Mein Laptop ist ein HP Pavilion G62 mit einem AMD-Prozessor mit drei Kernen und 1800 MHz. Wenn ich XBMC unter Windows 7 starte und mir die Prozessorgeschwindigkeiten ansehe, werden deutlich 1800 MHz angezeigt. Wenn ich es jedoch von Ubuntu aus entweder über den Launcher oder als Sitzung starte, heißt es, dass der Prozessor nur 800 MHz hat.

Ich wollte weiter nachforschen, also habe ich DXDIAG in Windows geladen, um zu sehen, wie schnell es war. Sicher genug, es zeigt an, dass es 1800mhz ist. Beim Starten von HardInfo in Ubuntu wird jedoch die folgende Geschwindigkeit für jeden Kern angegeben: 1500 MHz, 1500 MHz und 800 MHz.

Bedeutet dies, dass sowohl die angekündigte Prozessorgeschwindigkeit als auch die von Windows erkannte Geschwindigkeit lügen oder abgerundet sind? Oder gibt es ein Problem damit, dass Ubuntu die Geschwindigkeit meines Prozessors erkennt und mein System nicht so optimal läuft, wie es sollte? Letzteres würde ich gerne sagen ... hauptsächlich, weil es so aussieht, als ob Windows viel flüssiger läuft als Ubuntu.

Scotty_80
quelle
4
Bitte posten Sie die Ausgabe von cpufreq-info. Möglicherweise müssen Sie es sudo apt-get install cpufrequtilszuerst mit installieren .
Terdon
2
"Wenn ich es von Ubuntu aus entweder über den Launcher oder als Sitzung starte, heißt es, dass der Prozessor nur 800 MHz hat." Könntest du einen Screenshot machen?
Braiam

Antworten:

11

Standardmäßig verwendet Ubuntu den On-Demand- Frequenzregler. Installieren Sie das cpufrequtilsPaket folgendermaßen , um Governors zu überprüfen / zu wechseln :

sudo apt-get install cpufrequtils

So überprüfen Sie die aktuelle Geschwindigkeit / Drehzahl der einzelnen Kernläufe:

cpufreq-info

Sie können alle Kerne auf die folgende Leistung einstellen :

sudo cpufreq-set -r -g performance

Sie können bestätigen, dass alle Kerne jetzt mit der folgenden Maximalfrequenz ausgeführt werden:

grep MHz /proc/cpuinfo

Hinweis : Diese Änderung ist vorübergehend. Sobald Sie neu starten , wird es wieder On-Demand sein .

Sylvain Pineau
quelle
1
Danke für die Information! Ich habe die Befehle ausgeführt, die Sie aufgelistet haben, und der erste CPU-Kern wurde auf 1800 MHz erhöht, der Rest auf 800 MHz. Dies ist nach Sergeys exzellent detaillierter Antwort für mein System höchstwahrscheinlich normal.
Scotty_80
Die Antwort wurde so bearbeitet, dass sie den Parameter -c enthält, der angibt, welche CPU-Frequenz eingestellt werden soll. Es konnte keine Möglichkeit gefunden werden, alle CPU-Nummern gleichzeitig anzugeben. Ich versuche auch, ein Skript zu schreiben, um den Leistungsmodus im Netzbetrieb und den On-Demand-Modus im Akkubetrieb zu aktivieren. Wenn jemand bereits eine Lösung dafür hat, füge sie bitte hier hinzu. Vielen Dank.
Sri
1
Um die Leistung aller CPUs auf einmal einzustellen, wechseln Sie zuerst mit sudo su in den Superuser-Modus und verwenden Sie dann Folgendes: for ((i = 0; i <$ (nproc); i ++)); Führen Sie cpufreq-set -c $ i -r -g aus. erledigt
Sri
10

Theoretischer Hintergrund: In einem typischen Computer ist die CPU die meiste Zeit im Leerlauf. Um Energie zu sparen, implementieren moderne CPUs eine Frequenzskalierung, dh das Betriebssystem kann die CPU anweisen, bei geringer Last auf eine niedrigere Frequenz zu schalten. Die Technologie heißt SpeedStep bei Intel-Prozessoren und Cool'n'Quiet bei AMD-Prozessoren.

In Linux-Kernel wird die Frequenzskalierung durch eine cpufreqInfrastruktur implementiert , die ein Konzept von "Reglern" verwendet, um die Frequenz zu steuern.

Der Standardregler ist "ondemand", was die Frequenz erhöht, sobald die Prozessorauslastung über 95% steigt. Auf diese Weise kann die CPU im Leerlauf etwas Strom sparen und dennoch bei Bedarf auf die volle Leistung umschalten. Es gibt eine gewisse Übergangswartezeit, die in Millisekunden gemessen wird. Wenn eine CPU im Leerlauf plötzlich eine hohe Last aufweist, tuckert sie einige Millisekunden lang mit niedriger Frequenz, bevor sie auf die volle Leistung umschaltet. In bestimmten Situationen kann dies zu einer geringfügig geringeren Leistung führen läuft immer mit voller Geschwindigkeit.

Es gibt andere Regler , einschließlich des "Leistungs" -Reglers, der die CPU immer mit ihrer vollen Frequenz laufen lässt. Dies eliminiert die Schaltverzögerung, kann jedoch den Stromverbrauch erhöhen.

Sie können mit verschiedenen Gouverneuren experimentieren, wie in einer anderen Antwort vorgeschlagen, aber ich bezweifle, dass dies zu dramatischen Ergebnissen führen wird. Sie würden es nicht zum Standard machen, wenn es nicht in 99% der Fälle Sinn macht :)

Zurück zu Ihrer Frage: Höchstwahrscheinlich zeigt Ihnen Windows die maximal mögliche CPU-Frequenz (die auf der CPU-Box angezeigte), während Ubuntu Ihnen die tatsächliche Frequenz anzeigt, mit der die einzelnen CPU-Kerne zu diesem bestimmten Zeitpunkt ausgeführt werden. Dies bedeutet nicht, dass die CPU in Ubuntu langsamer läuft. Wenn es so aussieht, als ob Ubuntu auf Ihrem Laptop langsam läuft, ist dies höchstwahrscheinlich auf etwas anderes zurückzuführen - zum Beispiel auf wenig RAM, langsame Festplatte usw. Das moderne Ubuntu benötigt mit Sicherheit mehr Ressourcen als zum Beispiel Windows XP, auf dem Sie wahrscheinlich vorfinden ein älterer Laptop.

Mehr technische Lektüre:

Sergey
quelle
Das erklärt es definitiv! Wenn ich den Gouverneur jedoch auf Leistung setzen würde, sollten nicht alle meine CPU-Kerne auf 1800 MHz laufen? Wenn ich die Einstellung ändere, wird derzeit nur CPU1 auf 1800 MHz eingestellt. Die anderen 2 sind nur bei 800 mhz. Ich nehme an, dies könnte nur als CPU-Einschränkung
gewertet werden