Настройки параметров энергосбережения в GNU/Linux не устраивает многих, поэтому в данной статье мы подробно рассмотрим, как можно легко и быстро управлять профилями производительности данной операционной системы.
Введение
Ядро Linux по умолчанию активирует режим энергосбережения, представленный модулем ядра cpufreq, даже при работе устройства от электрической сети, что приводит к значительному снижению производительности при определённых вычислительных нагрузках, например в качестве сервера виртуализации или запуске компьютерных игр.
Несколько лет назад мы публиковали похожую статью, в которой устанавливали конфигурацию максимальной производительности при помощи скриптов автоматического запуска. Переключаться между профилями было нельзя.
Сейчас пользователям доступен мощный системный сервис Tuned, разработанный и поддерживаемый компанией Red Hat, предназначенный для управления профилями производительности в GNU/Linux буквально на лету.
О Tuned
Tuned представляет собой привилегированный системный сервис, предоставляющий высокоуровневое D-Bus API для сторонних приложений, которые, в свою очередь, смогут работать в стандартном пользовательском режиме без необходимости повышения прав.
Сервис способен управлять не только режимами энергосбережения процессора, но и планировщиком ввода-вывода, параметрами ядра Linux, режимами udev и т.д.
Учитываются особенности конкретных семейств процессоров и архитектур.
Установка Tuned
Tuned доступен в стандартных репозиториях большинства дистрибутивов GNU/Linux. В нашей статье мы в качестве примера будем использовать Fedora.
Установим его в Fedora:
sudo dnf install tuned
Активируем автоматический запуск сервиса при загрузке системы:
sudo systemctl enable --now tuned.service
Профили производительности
В базовой конфигурации Tuned содержит более 12 предустановленных профилей, рассчитанных на различные сферы применения: от стандартного стационарного ПК до сервера приложений.
Пользователи могут создавать свои собственные, как в виде переопределения или дополнения стандартных, так и полностью с нуля.
Рекомендуемые профили
Среди предустановленных есть фавориты:
- balanced — стандартный профиль, возвращающий настройки по умолчанию;
- accelerator-performance — включает режим высокой производительности системы, настраивая энергосбережение CPU и планировщики ввода-вывода, а также процессов.
Создание нового профиля
Свой профиль можно добавить, создав в /etc/tuned подкаталог с именем нового профиля, например /etc/tuned/foo-bar и разместив там файл tuned.conf, который будет включать собственную конфигурацию.
Листинг примера /etc/tuned/gaming/tuned.conf:
[main] summary=Optimize for Linux gaming include=desktop [cpu] governor=performance energy_perf_bias=performance
Перезапуск сервиса для применения изменений не требуется.
Управление через CLI
Простейший, хотя и не самый удобный способ управления — это использование встроенной утилиты командной строки tuned-adm.
Выведем список доступных профилей:
tuned-adm list
Переключимся на профиль accelerator-performance:
tuned-adm profile accelerator-performance
Активируем автоматический режим (в большинстве случаев будет просто восстановлен профиль balanced):
tuned-adm auto_profile
Tuned Switcher
Более удобным вариантом, на наш взгляд, будет использование специальной утилиты с графическим интерфейсом пользователя Tuned Switcher.
Основные функции
- не требуются какие-либо специальные права и поддерживается работа внутри изолированных окружений;
- отображение текущего профиля;
- быстрое переключение между доступными профилями;
- вывод системных уведомлений при смене профиля как с помощью программы, так и извне;
- поддержка автоматического режима (переключение между ним и ручным, а также вывод состояния его работы);
- поддержка работы как через значок в системном трее, так и в виде отдельного перемещаемого виджета;
- поддержка локализаций.
Установка Tuned Switcher
Fedora
В репозиториях Fedora присутствует пакет tuned-switcher, поэтому просто установим его:
sudo dnf install tuned-switcher
Flatpak
Проект также доступен в виде Flatpak, поэтому подключим репозиторий Flathub (если это не было сделано ранее):
flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Установим пакет org.easycoding.TunedSwitcher:
flatpak --user install flathub org.easycoding.TunedSwitcher
Работа с программой
Tuned Switcher способен работать в одном из двух режимов:
- значок в системном лотке — рекомендуемый режим по умолчанию, поддерживающий все доступные функции;
- перемещаемый виджет — упрощённый вариант для рабочих сред без поддержки системного трея.
Сразу после запуска программа отобразит текущий профиль. Он будет отмечен точкой, в разделе Profiles (Профили).
Выберем любой доступный из списка и программа уведомит об успехе или об ошибке, если такая произойдёт.
Литература
При написании статьи использовалась литература из следующих источников:
Что насчет power-profiles-daemon? Он лучше или хуже tuned?
Это очень хороший вопрос и я задавал его в списке рассылки Fedora, где присутствуют и разработчики данного проекта. В ответ получил лишь данную ссылку.
На вопрос хуже он или лучше, объективно ответить сейчас не представляется возможным. Он просто другой, со своими плюсами и минусами.
Оба проекта поддерживают управление через D-Bus, поэтому технически возможно реализовать поддержку обоих в утилитах управления производительностью.