Управление частотой процессора ноутбука в Linux
Уже давно стал замечать, что если смотреть видеоролики в интернете на нетбуке с процессором Intel Atom, они немного подтормаживают. Покопавшись в логах понял, что в это самое время загрузка процессора идет на 100%, а состояние процессора почему-то остается в режиме «энергосбережение». То ли всему виной операционная система Linux, то ли сам Atom так себя ведет, непонятно.
Единственным решением, которое я увидел, это самостоятельно управлять режимами работы процессора, благо cpufrequtils – это позволяет делать.
В большинстве случаев у Вас уже должна стоять утилита cpufrequtils, но на всякий случай исполняем команду установки этого дела:
sudo apt-get install cpufrequtils
- performance – максимальное быстродействие;
- powersave – режим энергосбережения;
- ondemand – автоматический режим, при котором происходит изменение частоты процессора в зависимости от нагрузки (этот режим стоит по умолчанию);
- conservative – тоже самое как и ondemand, но менее агрессивно.
Возможно, есть где-нибудь в закоулках сайта Intel специальный модуль для ядра Linux, чтобы мой процессор умно переключал эти режимы, но искать мне его лень. Если кто-нибудь это уже делал, то было бы неплохо об этом рассказать в комментариях. Лично я просто вручную переключаю эти режимы консольными командами.
Вот, к примеру, если нужно переключить процессор в максимальное быстродействие:
sudo cpufreq-set -g performance
sudo cpufreq-set -g powersave
Как делаю это я?
sudo cpufreq-set -c 0 -g performance & sudo cpufreq-set -c 1 -g performance & sudo cpufreq-set -c 2 -g performance & sudo cpufreq-set -c 3 -g performance
sudo cpufreq-set -c 0 -g powersave & sudo cpufreq-set -c 1 -g powersave & sudo cpufreq-set -c 2 -g powersave & sudo cpufreq-set -c 3 -g powersave
Из этих двух команд я создал 2 скрипта и «повешал» на сочетание клавиш Ctrl+F8 и Ctrl+F9. Теперь в зависимости от потребностей я могу легко менять частоту процессора.
P.S. Для того, чтобы при переключении не выскакивала консоль (терминал) необходимо вместо sudo использовать gksudo. Это графический интерфейс для ввода пароля.
Комментарии
И че, видать результат?! А как это понять?! Если включен режим энергосбережения тогда CPU почему до 100%? Мне кажется это все такое самовнушение. Прошу вас ответить увидели ли вы положительный результат от вкл выкл данного режима?!
Конечно есть. Производительность, как и шум вентилятора стали максимальны 😉
Посмотреть текущую работу процессора можно командой cpufreq-info
Балин, тоже счастливый обладатель подобного недоноута, в настоящее время использую его как роутер 🙂 Статья полезная попробуем применить на практике.
Чтобы получать уведомления о всех исторических IT-событиях —
Если Вы используете материал моего блога, то будьте добры поставьте ссылку.
Поговорим о режимах работы процессора и управления ими
Года 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.
Всем повышенных частот и минимального энергопотребления.