Menonaktifkan Intel Turbo Boost di ubuntu

17

Saya baru mengenal Ubuntu dan ingin menonaktifkan turbo boost. Saya sudah mencoba cpufreqtetapi saya tidak bisa membuatnya bekerja. apakah ada cara lain untuk melakukannya.

Di windows semudah mengubah kecepatan CPU dari 100 menjadi 99.

Ivaylo
sumber
apa model cpu kamu?
Ron
@Ron: itu Intel (R) Pentium (R) CPU B960 @ 2.20GHz Saya mendapat informasi dari obrolan tempat mereka pindah. Saya pikir itu tidak terlalu penting, yang penting adalah driver scaling mana yang digunakan. Saat ini (yang berbeda dari yang lalu) itu akan default ke intel_pstate jika prosesor mendukungnya.
Doug Smythies
kawan, saya mencoba: sudo cpupower frequency-set -g powersave dan katanya: Setting cpu: 0 Setting cpu: 1 Jadi di mana harus meletakkan core mana yang harus diubah? :)
Ivaylo
Terlepas dari driver skala mana yang Anda gunakan, turbo diaktifkan atau tidak adalah pengaturan global, satu tempat mencakup semua CPU. Saya sendiri, saya hanya menggunakan perintah primitif, tidak pernah alat tingkat tinggi seperti cpupower.
Doug Smythies

Jawaban:

18

Untuk membaca kondisi Turbo Boost saat ini, kita perlu menginstal msr-tools

sudo apt-get install msr-tools

Untuk mengetahui apakah fitur Turbo Boost dinonaktifkan, jalankan:

rdmsr -pi 0x1a0 -f 38:38

1=disabled
0=enabled

Ganti saya dengan nomor inti Anda


NOte: Jika Anda mendapatkan kesalahan berikut:

rdmsr:open: No such file or directory

kemudian muat modul "msr" dengan perintah berikut:

sudo modprobe msr

Untuk menonaktifkan fitur Turbo Boost, seseorang dapat mengatur seluruh register MSR 0x1a0 menjadi 0x4000850089, seperti di sini:

wrmsr -pC 0x1a0 0x4000850089

Di mana C mengacu pada nomor inti tertentu

Anda bisa mendapatkan nomor itu dengan menjalankan

cat /proc/cpuinfo | grep processor

maka setelah Anda tahu nomor Anda, Anda harus menjalankan perintah di atas untuk setiap inti. dalam nomor kasus Anda akan 0 & 1 jadi yang harus Anda lakukan

wrmsr -p0 0x1a0 0x4000850089

wrmsr -p1 0x1a0 0x4000850089

Solusi adalah singkatan dari blog ini


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

Script untuk menonaktifkan / mengaktifkan turbo boost

Script berikut dapat digunakan untuk mematikan / mengaktifkan turbo boost:

#!/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

simpan ini ke file bernama turbo-boost.sh

Penggunaan: Anda dapat menyalin skrip di atas dan menyimpannya ke dalam file bernama turbo-boost lalu mengaturnya agar dapat dieksekusi:

sudo chmod +x turbo-boost.sh

Anda kemudian dapat menggunakannya untuk menonaktifkan / mengaktifkan turbo boost:

./turbo-boost.sh disable
./turbo-boost.sh enable
Maythux
sumber
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
Mitch
$ rdmsr -pi 0x1a0 -f 38:38memberi saya daftar opsi untuk digunakan dengan perintah. misalnya: Usage: rdmsr [options] regno --help -h Print this help --version -V Print current version ....Apakah sintaks di atas sudah usang / tidak berlaku secara umum?
Sir hennihau
30

Jika sistem Anda menggunakan driver penskalaan frekuensi intel_pstate:

$ 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

Kemudian Anda dapat menanyakan status turbo yang diaktifkan atau dinonaktifkan:

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

Di mana 0 berarti turbo diaktifkan dan 1 berarti turbo dinonaktifkan. Dan Anda dapat mengubahnya dengan menuliskan (sebagai sudo) ke lokasi yang sama.

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

Saya tidak pernah ingat lokasi atau bagaimana melakukan `tee 'dengan benar, jadi saya lebih suka skrip dijalankan sebagai sudo:

$ 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
sumber
Jika Anda memiliki masalah dengan izin, cobasudo echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
Cirelli94
Bisakah ini diatur secara permanen, untuk tetap setelah reboot?
Alexey
@ Alexey: Jika Anda ingin itu permanen, maka saya akan menyarankan untuk melakukannya di BIOS. Kalau tidak, buat set_cpu_turbo_offskrip di atas untuk dijalankan saat startup.
Doug Smythies
1
@ Cirelli94 - meski begitu: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
Untuk beberapa alasan, ini tidak berpengaruh bagi saya di Ubuntu Server 14. sudo wrmsr --all 0x1a0 0x4000850089melakukan trik.
sudo
2

Anda dapat mencoba mengatur /sys/devices/system/cpu/cpufreq/boostnilai ke 0.

echo "0" | sudo tee /sys/devices/system/cpu/cpufreq/boost
Ron
sumber
1
ia mengatakan tidak ada file atau direktori seperti itu
Ivaylo
@Ron Saya merekomendasikan untuk memperluas jawaban ini dengan penjelasan tentang bagaimana melakukan itu.
Eliah Kagan
2
Saya setuju dengan komentar dari Eliah. Ini adalah jawaban yang benar jika driver penskalaan frekuensi acpi-cpufreq.
Doug Smythies