Deaktivieren von Intel Turbo Boost in Ubuntu

17

Ich bin neu in Ubuntu und möchte den Turbo-Boost deaktivieren. Ich habe es mit versucht, cpufreqaber ich kann es nicht zum Laufen bringen. Gibt es eine andere Möglichkeit, dies zu tun?

In Windows war es so einfach wie das Ändern der CPU-Geschwindigkeit von 100 auf 99.

Ivaylo
quelle
Was ist dein CPU-Modell?
Ron
@ Ron: Es ist die Intel (R) Pentium (R) CPU B960 bei 2,20 GHz. Ich habe die Informationen aus dem Chat erhalten, in den sie umgezogen sind. Ich denke, es ist nicht wirklich wichtig, welcher Skalierungstreiber verwendet wird. Derzeit (anders als in der Vergangenheit) wird standardmäßig intel_pstate verwendet, wenn der Prozessor dies unterstützt.
Doug Smythies
jungs, ich habe versucht: sudo cpupower frequency-set -g powersave und es heißt: cpu einstellen: 0 cpu einstellen: 1 Also, wo soll man welchen Kern ablegen, um ihn zu ändern? :)
Ivaylo
Unabhängig davon, welchen Skalierungstreiber Sie verwenden, ob turboaktiviert oder nicht, ist eine globale Einstellung, ein Punkt deckt alle CPUs ab. Ich selbst benutze nur primitive Befehle, niemals höherstufige Werkzeuge wie cpupower.
Doug Smythies

Antworten:

18

Um den aktuellen Status des Turbo Boost zu lesen, müssen wir die msr-tools installieren

sudo apt-get install msr-tools

Um festzustellen, ob die Turbo Boost-Funktion deaktiviert ist, führen Sie Folgendes aus:

rdmsr -pi 0x1a0 -f 38:38

1=disabled
0=enabled

Ersetzen Sie i durch Ihre Cores-Nummer


HINWEIS: Wenn Sie die folgende Fehlermeldung erhalten:

rdmsr:open: No such file or directory

Laden Sie dann das "msr" -Modul mit dem folgenden Befehl:

sudo modprobe msr

Um die Turbo-Boost-Funktion zu deaktivieren, können Sie das gesamte 0x1a0-MSR-Register wie folgt auf 0x4000850089 setzen:

wrmsr -pC 0x1a0 0x4000850089

Wobei sich C auf eine bestimmte Kernnummer bezieht

Sie können diese Nummer erhalten, indem Sie ausführen

cat /proc/cpuinfo | grep processor

Sobald Sie Ihre Nummern kennen, müssen Sie den obigen Befehl für jeden Kern ausführen. in deinem fall wären die zahlen 0 & 1 also musst du machen

wrmsr -p0 0x1a0 0x4000850089

wrmsr -p1 0x1a0 0x4000850089

Lösung steht für diesen Blog


Von http://notepad2.blogspot.com/2014/11/a-script-to-turn-off-intel-cpu-turbo.html

Ein Skript zum Deaktivieren / Aktivieren des Turbo-Boosts

Das folgende Skript kann zum Ein- und Ausschalten des Turbo-Boosts verwendet werden:

#!/bin/bash

if [[ -z $(which rdmsr) ]]; then
    echo "msr-tools is not installed. Run 'sudo apt-get install msr-tools' to install it." >&2
    exit 1
fi

if [[ ! -z $1 && $1 != "enable" && $1 != "disable" ]]; then
    echo "Invalid argument: $1" >&2
    echo ""
    echo "Usage: $(basename $0) [disable|enable]"
    exit 1
fi

cores=$(cat /proc/cpuinfo | grep processor | awk '{print $3}')
for core in $cores; do
    if [[ $1 == "disable" ]]; then
        sudo wrmsr -p${core} 0x1a0 0x4000850089
    fi
    if [[ $1 == "enable" ]]; then
        sudo wrmsr -p${core} 0x1a0 0x850089
    fi
    state=$(sudo rdmsr -p${core} 0x1a0 -f 38:38)
    if [[ $state -eq 1 ]]; then
        echo "core ${core}: disabled"
    else
        echo "core ${core}: enabled"
    fi
done

Speichern Sie dies in einer Datei namens turbo-boost.sh

Verwendung: Sie können das obige Skript kopieren und in einer Datei namens turbo-boost speichern und dann als ausführbar festlegen:

sudo chmod +x turbo-boost.sh

Sie können es dann zum Deaktivieren / Aktivieren des Turbo-Boosts verwenden:

./turbo-boost.sh disable
./turbo-boost.sh enable
Maythux
quelle
Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Mitch
$ rdmsr -pi 0x1a0 -f 38:38gibt mir nur eine Liste von Optionen, die mit dem Befehl verwendet werden können. zB: Usage: rdmsr [options] regno --help -h Print this help --version -V Print current version ....Ist die obige Syntax veraltet / nicht allgemein anwendbar?
Sir hennihau vor
30

Wenn Ihr System den Frequenzskalierungstreiber intel_pstate verwendet:

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate

Dann können Sie den Status des aktivierten oder deaktivierten Turbos abfragen:

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0

Wobei 0 bedeutet, dass der Turbo aktiviert ist und 1 bedeutet, dass er deaktiviert ist. Und Sie können es ändern, indem Sie (als sudo) an dieselbe Stelle schreiben.

$ echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
1

Ich erinnere mich nie an die Position oder wie man das "tee" Ding richtig macht, deshalb bevorzuge ich Skripte, die als sudo ausgeführt werden:

$ cat set_cpu_turbo_off
#! /bin/bash
echo "1" > /sys/devices/system/cpu/intel_pstate/no_turbo

$ cat set_cpu_turbo_on
#! /bin/bash
echo "0" > /sys/devices/system/cpu/intel_pstate/no_turbo
Doug Smythies
quelle
Wenn Sie Probleme mit Berechtigungen haben, versuchen Siesudo echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
Cirelli94
Kann dies dauerhaft eingestellt werden, um nach dem Neustart zu bleiben?
Alexey
@ Alexey: Wenn Sie möchten, dass es dauerhaft ist, dann würde ich vorschlagen, es stattdessen im BIOS zu tun. Andernfalls führen Sie das obige set_cpu_turbo_offSkript beim Start aus.
Doug Smythies
1
@ Cirelli94 - trotzdem:sudo echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo 1 tee: /sys/devices/system/cpu/intel_pstate/no_turbo: Operation not permitted
1
Aus irgendeinem Grund hat dies für mich in Ubuntu Server 14 keine Auswirkung sudo wrmsr --all 0x1a0 0x4000850089.
Sudo
2

Sie können versuchen, den /sys/devices/system/cpu/cpufreq/boostWert auf 0 zu setzen.

echo "0" | sudo tee /sys/devices/system/cpu/cpufreq/boost
Ron
quelle
1
Es heißt, keine solche Datei oder Verzeichnis
Ivaylo
@ Ron Ich empfehle, diese Antwort um eine Erklärung zu erweitern.
Eliah Kagan
2
Ich stimme der Bemerkung von Eliah zu. Es ist eine korrekte Antwort, wenn der Frequenzskalierungstreiber acpi-cpufreq ist.
Doug Smythies