Отключение Intel Turbo Boost в Ubuntu

17

Я новичок в Ubuntu и хочу отключить турбо-буст. Я пытался с, cpufreqно я не могу заставить его работать. Есть ли другой способ сделать это.

В Windows это было так же просто, как изменить скорость процессора от 100 до 99.

Ивайло
источник
какая у тебя модель процессора?
Рон
@Ron: это процессор Intel® R Pentium® B960 @ 2,20 ГГц. Я получил информацию из чата, в который они переехали. Я думаю, что это не имеет значения, важно то, какой драйвер масштабирования используется. В настоящее время (что отличается от прошлого) он будет по умолчанию intel_pstate, если процессор поддерживает его.
Даг Смитис
ребята, я попробовал: sudo cpupower частота-set -g powersave и он говорит: Установка CPU: 0 Установка CPU: 1 Так, где поставить, какое ядро ​​изменить? :)
Ивайло
Независимо от того, какой драйвер масштабирования вы используете, с турбонаддувом или без него, является глобальным параметром, одно место покрывает все процессоры. Сам я использую только примитивные команды, а не инструменты более высокого уровня, такие как cpupower.
Даг Смитис

Ответы:

18

Чтобы прочитать текущее состояние Turbo Boost, нам нужно установить msr-tools

sudo apt-get install msr-tools

Чтобы узнать, отключена ли функция Turbo Boost, выполните:

rdmsr -pi 0x1a0 -f 38:38

1=disabled
0=enabled

Замените i номером вашего ядра


ПРИМЕЧАНИЕ: если вы получаете следующую ошибку:

rdmsr:open: No such file or directory

затем загрузите модуль «msr» с помощью следующей команды:

sudo modprobe msr

Чтобы отключить функцию Turbo Boost, можно установить для всего регистра MSR 0x1a0 значение 0x4000850089, как показано здесь:

wrmsr -pC 0x1a0 0x4000850089

Где C относится к конкретному номеру ядра

Вы можете получить это число, запустив

cat /proc/cpuinfo | grep processor

затем, когда вы знаете свои номера, вы должны выполнить команду выше для каждого ядра. в вашем случае номера будут 0 и 1, поэтому вы должны сделать

wrmsr -p0 0x1a0 0x4000850089

wrmsr -p1 0x1a0 0x4000850089

Решение выступает за этот блог


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

Скрипт для отключения / включения турбо-буста

Следующий скрипт можно использовать для включения / выключения турбо-буста:

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

сохранить это в файл с именем turbo-boost.sh

Использование: Вы можете скопировать приведенный выше скрипт и сохранить его в файл с именем turbo-boost, а затем установить его на исполняемый:

sudo chmod +x turbo-boost.sh

затем вы можете использовать его, чтобы отключить / включить турбо-буст:

./turbo-boost.sh disable
./turbo-boost.sh enable
Maythux
источник
Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Митч
$ rdmsr -pi 0x1a0 -f 38:38дает мне просто список вариантов для использования с командой. Например: Usage: rdmsr [options] regno --help -h Print this help --version -V Print current version ....является ли вышеуказанный синтаксис устаревшим / неприменимым в общем случае?
Сэр Хеннихау
30

Если ваша система использует драйвер масштабирования частоты 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

Затем вы можете узнать о включенном или отключенном турбо-статусе:

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

Где 0 означает, что Turbo включен, а 1 означает, что он отключен. И вы можете изменить его, написав (как sudo) в том же месте.

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

Я никогда не помню местоположение или как правильно выполнить команду "tee", поэтому я предпочитаю запускать скрипты как 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
Дуг Смитис
источник
Если у вас есть проблемы с разрешениями, попробуйтеsudo echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
Cirelli94
Можно ли это установить постоянно, чтобы остаться после перезагрузки?
Алексей
@Alexey: Если вы хотите, чтобы он был постоянным, я бы предложил сделать это в BIOS. В противном случае сделайте приведенный выше set_cpu_turbo_offскрипт для запуска во время запуска.
Дуг Смитис
1
@ Cirelli94 - даже так: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
По какой-то причине это не имеет никакого эффекта для меня в Ubuntu Server 14. sudo wrmsr --all 0x1a0 0x4000850089делает свое дело.
Судо
2

Вы можете попробовать установить /sys/devices/system/cpu/cpufreq/boostзначение в 0.

echo "0" | sudo tee /sys/devices/system/cpu/cpufreq/boost
Рон
источник
1
это говорит, что нет такого файла или каталога
Ивайло
@ Рон Я рекомендую расширить этот ответ объяснением того, как это сделать.
Элия ​​Каган
2
Я согласен с комментарием Элии. Это правильный ответ, если драйвером масштабирования частоты является acpi-cpufreq.
Даг Смитис