Решение проблемы с ENERGY_PERF_BIAS: Set to ‘normal’, was ‘performance’ в Linux.

10. февраля 2020 Linux 0

Примечание: Опробовано на i7 6800K.

Дистрибутив: Linux Mint 19.3.

 

Проблема проявляется тем, что процессор работает на пониженных частотах, что может быть весьма вредным в рабочих задачах и играх.

 

Проверка наличия проблемы.

Производится следующей командой:

dmesg --level=warn | grep -i energy

Если в выводе есть запись ENERGY_PERF_BIAS: Set to ‘normal’, was ‘performance’, то это означает наличие конфликта параметра ядра и настройки энергопотребления в UEFI/BIOS. Проявляется только у платформы на базе Intel.

 

Так же можно «диагностировать» по частоте работы потоков процессора. Если при загрузке процессора ресурсоёмкой задачей частота меньше номинальной, значит проблема присутствует. Вывести значение тактовой частоты процессора по каждому потоку с обновлением данных раз в секунду:

watch -n1 "cat /proc/cpuinfo | grep -i mhz"

 

Подготовка к изменению режима энергопотребления.

Вывести доступные режимы энергопотребления для каждого потока:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors

powersave — режим энергосбережения.

ondemand — сбалансированный режим (устарел, вместо него теперь powersave).

performance — режим производительности.

 

Вывести активный режим энергопотребления для каждого потока (энергосберегающий или производительность):

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

В выводе окажется powersave.

 

Переключение режима энергопотребления.

Переключить режим энергопотребления на performance для всех потоков процессора:

echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

 

Примечание: При использовании встроенной графики Intel изменение режима энергопотребления на performance может привести к падению производительности графики. Это связано с общим бюджетом питания CPU и графического ядра. В режиме performance приоритет будет отдан CPU.

 

В Linux Mint для того, чтобы установленный режим сохранился после перезагрузки, нужно отключить сервис ondemand:
sudo systemctl disable ondemand

 

Теперь процессор будет работать в режиме производительности.

 

Бонус.

Режим максимальной производительности можно активировать через параметр ядра epb=0. Посредством Grub это выглядит так:

GRUB_CMDLINE_LINUX_DEFAULT="epb=0"

0 — максимальная производительность.
15 — максимальное энергосбережение (минимальная производительность).

Для применения значения параметра нужно перезагрузить систему.

 

Помимо энергосберегающего режима, много производительности теряется из-за патчей безопасности, которыми были закрыты многочисленные критические уязвимости процессоров Intel. Если риск оправдан, то их воздействие можно отключить. Начиная с ядра Linux 5.1.x, отключение производится передачей ядру параметра mitigations=off. Сделать это можно через Grub:

GRUB_CMDLINE_LINUX_DEFAULT="mitigations=off"

После перезагрузки системы значение параметра будет применено.


Добавить комментарий

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