Включение TURBO-BOOST,Отключения режима экономии энергии. [LINUX]

MaZa

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

Установим необходимый пакет
C-подобный:
apt install msr-tools

Проверим текущие состоние, где -p0 — номер ядра:
C-подобный:
rdmsr -p0 0x1a0 -f 38:38
1 = деактивирован
0 = активирован

Если получаете ошибку:
rdmsr:open: No such file or directory

Нужно загрузить модуль msr в ядро:
C-подобный:
modprobe msr

Далее можно правя регистры включать или отключать Turbo Boost, но чтобы было проще, я нашел скрипт, который активирует или деактивирует его, без запоминания сложных регистров. Назовем его turbo-boost.sh:
C-подобный:
#!/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

Дадим права на запуск:
C-подобный:
chmod +x turbo-boost.sh

Теперь вы можете активировать/деактивировать Turbo Boost:
C-подобный:
./turbo-boost.sh disable
./turbo-boost.sh enable

Установим утилиту cpupower:
C-подобный:
sudo apt-get update
sudo apt-get install linux-cpupower

Узнать текущие состояние 1-го ядра:
C-подобный:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

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

Нас интересует режим performance, так как он дает наибольшую производительность. У вас возможно стоит powersave, как было у меня, поэтому сменим его.
C-подобный:
cpupower frequency-set -g performance

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

Еще дам команду, с помощью которой можно наблюдать за изменением частоты ядер процессора:
C-подобный:
watch grep \"cpu MHz\" /proc/cpuinfo
либо с помощью i7z
Screenshot_13.png

Настройка для постоянной работы
Все настройки, которые мы сделаем , пропадут после перезагрузки и будут выставленны те, что были заданы по умолчанию. Для сохранения настроек необходимо отредактировать конфигурационный файл.
C-подобный:
nano /etc/sysconfig/cpupower

Пример содержимого данного файла:
C-подобный:
# See 'cpupower help' and cpupower(1) for more info
CPUPOWER_START_OPTS="frequency-set -g performance"
CPUPOWER_STOP_OPTS="frequency-set -g performance"
 
Последнее редактирование:

MaZa

Участник
Сообщения
1,732
Реакции
980
Чтобы значение сохранилось после перезагрузки сервера, также можно воспользоваться crontab(ом).

Пишем (от рута)
C-подобный:
crontab -e
и прописываем
C-подобный:
@reboot cpupower frequency-set -g performance
Должно получиться так. upload_2019-2-5_2-12-46.png

Сохраняем CTRL + X далее нажимаем Y и ENTER
 

√ιקELITE√ιק

Участник
Сообщения
276
Реакции
48
-bash: ./turbo-boost.sh: /bin/bash^M: bad interpreter: No such file or directory
Все сделал а пишет вот такую ошибку, подскажите
 

MaZa

Участник
Сообщения
1,732
Реакции
980
-bash: ./turbo-boost.sh: /bin/bash^M: bad interpreter: No such file or directory
Все сделал а пишет вот такую ошибку, подскажите
Вообще по сути этот файл не обязателен,ну если конечно ты хочешь по удобству отключать/выключать турбо-буст.
Смотри,когда ты заходишь в ftp или в sftp своего сервера то тебя кидает в конкретную папку (она у тебя главная),там создавай файл.

Либо воспользуйся командой
C-подобный:
touch turbo-boost.sh
Это создание файла.
 
Сверху Снизу