Управляем профилями производительности Linux

Настройки параметров энергосбережения в 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 способен работать в одном из двух режимов:

  1. значок в системном лотке — рекомендуемый режим по умолчанию, поддерживающий все доступные функции;
  2. перемещаемый виджет — упрощённый вариант для рабочих сред без поддержки системного трея.
Апплет Tuned Switcher
Апплет Tuned Switcher

Сразу после запуска программа отобразит текущий профиль. Он будет отмечен точкой, в разделе Profiles (Профили).

Уведомление Tuned Switcher
Уведомление Tuned Switcher

Выберем любой доступный из списка и программа уведомит об успехе или об ошибке, если такая произойдёт.

Литература

При написании статьи использовалась литература из следующих источников:

2 commentary to post

  1. Что насчет power-profiles-daemon? Он лучше или хуже tuned?

    1. Это очень хороший вопрос и я задавал его в списке рассылки Fedora, где присутствуют и разработчики данного проекта. В ответ получил лишь данную ссылку.

      На вопрос хуже он или лучше, объективно ответить сейчас не представляется возможным. Он просто другой, со своими плюсами и минусами.

      Оба проекта поддерживают управление через D-Bus, поэтому технически возможно реализовать поддержку обоих в утилитах управления производительностью.

Обсуждение закрыто.