Wie skaliere ich den intel_pstate-Treiber unter Ubuntu 15.04?

3

Ich habe fast die ganze Lösung ausprobiert, um die CPU-Frequenz zu skalieren, aber keinen Erfolg. Ich habe Intel Core i5-3210m 2,5 GHz-3,1 GHz. Ich möchte es dauerhaft auf 1,6 GHz ohne Turbo-Boost einstellen, um das Timing des Akkus zu verbessern. Bitte teilen Sie es gemäß intel_pstate Treiber mit.

AhmedBilal
quelle

Antworten:

6

Um die obere CPU-Frequenz mit dem intel_pstate-Treiber auf 52% zu begrenzen, gehen Sie wie folgt vor:

echo "52" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct

Anmerkung 1: Bei der Berechnung von 52% habe ich angenommen, dass Sie den Turbo aktiviert haben, für einen Maximalzustand von 31. Daher ist 1,6 / 3,1 = 52%. Wenn Sie den Turbo deaktiviert haben, beträgt die Anzahl 64%. Es ist nicht erforderlich, den Turbo speziell zu deaktivieren, da er mit dieser Begrenzung sowieso nie in den Turbobereich gelangt.

Hinweis 2: Abhängig von Ihren Anwendungen und Ihrem Prozessor führt die Begrenzung der CPU-Frequenz möglicherweise nicht zur längsten Akkulaufzeit. In einigen Fällen kann die schnellere Ausführung der Aufgabe über eine höhere CPU-Frequenz und das frühere und längere Versetzen einiger CPUs in den Energiesparmodus (höchster C-Status) insgesamt zu einem geringeren Stromverbrauch führen.

Hinweis 3: Die Lösung ist nicht permanent und die Einstellung geht beim Neustart verloren. Ich schlage vor, Sie versuchen es eine Weile, melden sich dann und wir können darüber nachdenken, wie Sie es dauerhaft machen. Dafür gibt es andere Tools auf höherer Ebene, aber ich benutze sie nie. Jemand anderes bietet möglicherweise eine andere Antwort mit den Tools der höheren Ebene an.

Ein Beispiel (anderer Prozessor, andere Nummern). CPU 7 ist zu 100% ausgelastet:
Vor dem Einstellen der oberen Frequenzgrenze:

$ grep MHz /proc/cpuinfo
cpu MHz         : 3697.234
cpu MHz         : 3655.796
cpu MHz         : 3699.890
cpu MHz         : 3742.257
cpu MHz         : 3613.562
cpu MHz         : 3670.273
cpu MHz         : 3628.968
cpu MHz         : 3799.898

Begrenzen Sie nun die obere Frequenz und überprüfen Sie diese:

$ echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
50
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
50
$ grep MHz /proc/cpuinfo
cpu MHz         : 1899.882
cpu MHz         : 1900.015
cpu MHz         : 1899.882
cpu MHz         : 1893.906
cpu MHz         : 1899.351
cpu MHz         : 1900.015
cpu MHz         : 1899.750
cpu MHz         : 1899.882

BEARBEITEN: Achten Sie auf die Rückportierung der Änderungen des intel_pstate-Treibers für den aktuellen Kernel. Ich weiß, dass Backporting durchgeführt wird, aber ich kenne die Veröffentlichungszeitpläne nicht.

Damit die Änderung immer während des Startvorgangs auftritt, müssen Sie zunächst ein Skript erstellen. Beispiel:

$ cat set_cpu_max_perf_pct
#! /bin/bash

echo 52 >/sys/devices/system/cpu/intel_pstate/max_perf_pct
echo -n "intel_pstate maximum performance request is (percent): "
cat /sys/devices/system/cpu/intel_pstate/max_perf_pct

Testen Sie das Skript als sudo. Lesen Sie dann eine der vielen anderen Fragen und Antworten zu dieser Adresse, damit sie während des Startvorgangs ausgeführt wird. Sag, das hier .

Alternativ können Sie Tools wie TLP installieren , die diese Einstellungen in der Konfigurationsdatei mit Parametern für Batterie oder Wechselstrom und automatischem Wechsel haben.

Doug Smythies
quelle
Wenn ich cpufreq-info überprüfe, geht es manchmal über 2 GHz. Ich denke, der Befehl hat nicht funktioniert.
AhmedBilal
Ich bearbeite eine Methode zum Einchecken in meine Antwort.
Doug Smythies
Cpufreq-info ist mir nicht bekannt. Ich vertraue nur Primitiven, wie im Beispiel, das ich in meiner Antwort bearbeitet habe. Ich vertraue auch auf die Ergebnisse von Turbostat.
Doug Smythies
1
Wären Sie bereit, Kernel 4.2 zu testen, um festzustellen , ob Ihr Problem weiterhin auftritt? Es wurden einige Änderungen am intel_pstate-Treiber vorgenommen. Wenn das Problem weiterhin auftritt, sind auch einige zusätzliche Ablaufverfolgungsinformationen verfügbar. Dies ist der nächste Schritt. Führen Sie ungewöhnliche Aktionen aus, bei denen möglicherweise versucht wird, die Zielzustände selbst anzupassen?
Doug Smythies
1
Vielen Dank. Ich habe Kernel 4.2 installiert und von der erweiterten Boot-Option aus Ubuntu Kernel 4.2 Generic ausgewählt. Wenn ich die obigen Befehle ausführe, wird die Frequenz überraschenderweise begrenzt. Ich habe mehrmals nachgesehen. Es ist maximal bei 1,6 GHz, was vollkommen in Ordnung ist. Sagen Sie mir jetzt bitte, wie ich die Frequenz dauerhaft begrenzen kann.
Nochmals vielen