Поговорим о режимах работы процессора и управления ими

Года 3 назад, заинтересовался режимами работы процессора в Linux, данный параметр влияет не только на скорость выполнения операций, но и потребление электроэнергии, у меня компьютер работает 24/7, и допустим в ночное время, или когда компьютер простаивает я не вижу смысла в повышенных частотах.


Современные десктопные процессоры поддерживают 3 основных режима powersave, ondemand и performance.
  • powersave — режим энергосбережения, ядро будет работать на пониженных частотах
  • ondemand — режим зависящей от текущей нагрузки на ядро
  • performance — режим максимальной мощности, выставляет максимально возможную частоту
Для управления данными режимами можно использовать утилиту cpupower или использовать следующую команду echo governor | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor governor заменить на один из режимом, cpu* — на номер ядра, лично я предпочитаю cpupower.
Кстати посмотреть доступные режимы можно командой cpupower frequency-info --governors
Установим cpupower pacman -S cpupower. Для того что бы мы могли менять частоту без явок и паролей, добавим в /etc/sudoers
username	ALL=(ALL) NOPASSWD:/usr/bin/cpupower
Разъясняю, пользователь username может выполнять все команды используя sudo, но /usr/bin/cpupower будет выполнять без запроса пароля.
У меня процессор AMD FX-6350, у него «6» ядер, и на каждое ядро можно выставлять определенный режим работы. Если не использовать cpupower придется писать скрипты с циклами или перечислять каждое ядро отдельно.
Следующей командой можно выставить необходимый нам режим:
#!/bin/bash
sudo cpupower frequency-set -g governor > /dev/null
governor меняем на нужный нам режим.
Так же у меня мультимедийная клавиатура, и на ней есть кнопки типа «браузер», «почта» и прочее бесполезная хрень, и на многие у меня назначены реально необходимые мне функции. На одной из кнопок у меня назначен скрипт, который поочередно меняет режимы процессора.
powermode.sh:
#!/bin/bash
if [ "`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`" == "ondemand" ]; then
    sudo cpupower frequency-set -g performance > /dev/null
    notify-send -i /usr/share/icons/hicolor/48x48/apps/xfce4-cpufreq-plugin.png "PERFOMANCE CPU MODE ON"
elif [ "`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`" == "performance" ]; then
    sudo cpupower frequency-set -g powersave > /dev/null
    notify-send -i /usr/share/icons/hicolor/48x48/apps/xfce4-cpufreq-plugin.png "POWERSAVE CPU MODE ON"
else
    sudo cpupower frequency-set -g ondemand > /dev/null
    notify-send -i /usr/share/icons/hicolor/48x48/apps/xfce4-cpufreq-plugin.png "ONDEMAND CPU MODE ON"
fi
Рекомендую не запариваться, а использоваться ondemand, хотя в некоторых играх(да под Linux куча игр) или когда нужно, что нибудь быстро откомпилировать приходится включать perfomance.
Всем повышенных частот и минимального энергопотребления.

Комментарии ()

    Есть вопрос или предложение пиши в Telegram @cloudsv

    Прямой эфир

    cloudsv 24 октября 2018, 00:27
    О жизни Обновление Scala Rider G4 0
    cloudsv 21 октября 2018, 23:16
    Arch Linux Памятка по основным утилитам Linux 0
    cloudsv 01 июня 2018, 01:39
    Telegram Настройка прокси mtproto для Telegram 28
    cloudsv 22 января 2018, 21:59
    Web Локальное зеркало обновлений Dr.web 0
    cloudsv 03 октября 2017, 10:55
    Web Пароль от резервной копии Bitrix 1
    cloudsv 09 июля 2017, 23:02
    Arch Linux Let's Encrypt это легко и просто 0