TurboBoost
Загрузка...
Х

Включение и отключение Turbo Boost в Linux

Бывает нужно отключить Turbo Boost или наоборот включить его, так же узнать текущие состояние. В Linux это можно сделать без перезагрузки в BIOS. Мы рассмотрим с помощью каких команд узнать текущие состояние, так же изменим режим работы процессора с «энергосбережение» на «производительность», что заставит процессор работать более эффективно.

1. Текущие состояние Turbo Boost и его смена.

Установим необходимый пакет

apt install msr-tools

 

Проверим текущие состоние, где -p0 — номер ядра:

rdmsr -p0 0x1a0 -f 38:38

1 = деактивирован
0 = активирован

 

Если получаете ошибку:

rdmsr:open: No such file or directory

 

Нужно загрузить модуль msr в ядро:

modprobe msr

Далее можно правя регистры включать или отключать Turbo Boost, но чтобы было проще, я нашел скрипт, который активирует или деактивирует его, без запоминания сложных регистров. Назовем его turbo-boost.sh:

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

 

Дадим права на запуск:

chmod +x turbo-boost.sh

 

Теперь вы можете активировать/деактивировать Turbo Boost:

./turbo-boost.sh disable
./turbo-boost.sh enable

 

2. Управление режимом питания процессора, если используется intel_pstate:

Установим утилиту cpupower:

apt install linux-cpupower

 

Узнать текущие состояние 1-го ядра:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

 

Возможные варианты: https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt.

Нас интересует режим performance, так как он дает наибольшую производительность. У вас возможно стоит powersave, как было у меня, поэтому сменим его.

cpupower frequency-set -g performance

 

На этом все, мы включили Turbo Boost и переключили режим работы процессора на максимальную производительность, так как нам нет смысла экономить электроэнергию на арендованом сервере в Дата Центре.

Еще дам команду, с помощью которой можно наблюдать за изменением частоты ядер процессора:

watch grep \"cpu MHz\" /proc/cpuinfo

 

CPU MHz

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.