Увеличиваем производительность Steam и игр в Linux

В некоторых дистрибутивах GNU/Linux клиент Steam и многие игры могут «тормозить», т.е. работать слишком медленно. Это происходит из-за того, что в большинстве дистрибутивов ядро собрано с поддержкой модуля cpufreq, который снижает частоту процессора до минимально допустимой в угоду снижения энергопотребления.

Данный модуль часто некорректно определяет момент запуска игры и не разгоняет процессор до оптимальной частоты, из-за чего в играх начинаются фризы. В данной статье мы рассмотрим простой и надёжный способ увеличения производительности.

Скрипт увеличения производительности

Данный простой bash-скрипт отключает все режимы энергосбережения процессора и заставляет его работать на максимальной рабочей частоте (разгон не осуществляется, поэтому риск выхода из строя отсутствует):

#!/bin/sh

for cf in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
do
echo performance > $cf;
done

Запуск скрипта в системе

Для запуска скрипта сохраните его в файл например в домашний каталог с именем perfinc.sh, выдайте право на запуск и собственно запустите с правами суперпользователя (root).

Выдача прав скрипту с именем perfinc.sh, находящемся в домашнем каталоге (~) пользователя (выполняется только один раз после создания файла):

cd ~
chmod +x perfinc.sh

Для запуска скрипта выполните в терминале (только после того, как выдадите право на запуск):

sudo ./perfinc.sh

Производительность процессора увеличится немедленно. Действие будет выполнено сразу для всех доступных ядер CPU. Если скрипт запущен без прав суперпользователя, вы получите сообщение об ошибке «Отказано в доступе».

Внимание! Скрипт действует только до перезагрузки системы. После рестарта снова будет активирован энергосберегающий режим.

Настройка автоматического запуска

Если вам нужно увеличивать производительность CPU постоянно, то добавьте строки из данного скрипта в системный инит-скрипт rc.local. Для продолжения проверьте существует ли файл rc.local.

Внимание! Расположение файла rc.local зависит от дистрибутива (используйте правильный во всех командах):

  • Fedora, CentOS, RHEL — /etc/rc.d/rc.local (используется в нашем примере);
  • Ubuntu — /etc/rc.local;
  • openSUSE — /etc/init.d/boot.local;
  • Arch — /etc/rc.local;
  • Gentoo — /etc/conf.d/local.start;

Если файл уже существует, то просто добавьте строчки 3-6 из нашего примера perfinc.sh в него и сохраните изменения:

sudo nano /etc/rc.d/rc.local

Если же файл не существует, то сперва создадим его:

sudo touch /etc/rc.d/rc.local

Выдадим ему нужные права:

sudo chmod 700 /etc/rc.d/rc.local

Теперь добавим всё содержимое нашего примера perfinc.sh в rc.local:

sudo nano /etc/rc.d/rc.local

Заключение

Таким способом мы увеличили производительность системы. Все действия вы выполняете только на свой страх и риск. Мы не несём никакой ответственности за возможные повреждения системы или оборудования.

11 commentaries to post

  1. Спасибо, помогло! Испытывал на Asus n550jv в Linux Mint с WarThunder. Было 25 FPS в ангаре, стало 65, в полете в среднем от 30 до 40.

  2. отлично, вкупе с настрйкой драйверов дало очень большой прирост. L4D2 заработал круче чем в винде, стабильные 40, без фризов и провисаний. В Доте разницы не заметил, но там, возможно надо еще что-то подкрутить. Intel hd3000

  3. Возможно, что я не по теме сейчас напишу, но более близкой статьи не нашел.

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

    Как всем известно, адекватная работа вертикальной синхронизации в играх может частенько давать прирост производительности. По умолчанию, при базовой настройке через nvidia-xconfig, тройная буферизация не задействована. Чтобы включить эту функцию, надо отредактировать /etc/X11/xorg.conf и внести в Section «Device» следующую строку:

    Option "TripleBuffer" "1"

    С поддержкой этой функции можно будет полноценно задействовать опцию Vsync в играх. В той же DotA 2, Borderlands 2 или Alien: Isolation удавалось добиться хорошего прироста.

    И еще, касательно команды nvidia-xconfig, несколько слов.

    Если планируется устанавливать на последнюю версию дистрибутива Fedora драйвера Nvidia из RPMFusion, то строго не рекомендую применять команду nvidia-xconfig. Это может сделать невозможным старт графической системы. Созданный этой командой xorg.conf лучше переименовать и разместить таким образом:

    /etc/X11/xorg.conf.d/20-nvidia.conf

    А напоследок я скажу, что есть еще определенные подводные камни с дисплейным менеджером GDM в рабочем окружении GNOME Shell. Дело в том, что проприетарные драйвера Nvidia пока не работают с Wayland. И чтобы графическая система нормально запустилась, необходимо перевести GDM на использование X11. Делается это путем редактирования /etc/gdm/custom.conf и соответственно снятием комментария с WaylandEnable=false.

    Ну и, конечно же, не могу пройти мимо еще одного достоинства функции тройной буферизации на Nvidia. В рабочих окружениях KDE и GNOME она способна избавить от тиринга.

  4. @FrancoDelille
    Проприетарные драйверы NVIDIA последних версий стали настолько кривыми, что вызывают регулярные падения многих приложений и особенно оконных менеджеров.

    Кстати, в современных дистрибутивах файл xorg.conf не используется.

  5. Vitaly :
    @FrancoDelille
    Проприетарные драйверы NVIDIA последних версий стали настолько кривыми, что вызывают регулярные падения многих приложений и особенно оконных менеджеров.
    Кстати, в современных дистрибутивах файл xorg.conf не используется.

    Кривые, но на одном Nouveau далеко не уехать. Печально, но факт. Хотя, конечно, все еще зависит от потребностей самого пользователя.

    А с xorg.conf ситуация складывается не совсем правильная. nvidia-xconfig неплохо было бы разработчикам драйвера настроить таким образом, чтобы он размещал все не в /etc/X11/xorg.conf, а именно в /etc/X11/xorg.conf.d/20-nvidia.conf. Все таки ситуации бывают такие, взять ту же тройную буферизацию, что необходимо что-то задействовать. А тут был бы уже готовый конфиг, без лишних телодвижений через nano отредактировал, да и делов!

  6. FrancoDelille :

    Кривые, но на одном Nouveau далеко не уехать. Печально, но факт. Хотя, конечно, все еще зависит от потребностей самого пользователя.

    Это да. Оконный менеджер из состава KDE Frameworks 5 например падает раз в десять чаще при использовании Nouveau.

    FrancoDelille :

    А с xorg.conf ситуация складывается не совсем правильная. nvidia-xconfig неплохо было бы разработчикам драйвера настроить таким образом, чтобы он размещал все не в /etc/X11/xorg.conf, а именно в /etc/X11/xorg.conf.d/20-nvidia.conf. Все таки ситуации бывают такие, взять ту же тройную буферизацию, что необходимо что-то задействовать. А тут был бы уже готовый конфиг, без лишних телодвижений через nano отредактировал, да и делов!

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

  7. @Vitaly
    С конфигурацией xorg.conf стойкая привычка сложилась. По старинке со времен использования старых версий Ubuntu и Debian. Я ж ведь еще с тройной буферизацией завязан без конца из-за тиринга и V-Sync в играх. Поэтому мне без этого трудно обходиться. Единственное, теперь уже просто в Section «Device» пару-тройку строчек нужных вывожу и все это бросаю в /etc/X11/xorg.conf.d/.

  8. спасибо, помогли, а то хитман подлагивал, хоть и комп дофига мощный, а теперь все идеально, как на винде

  9. Спасибо огромное! После запуска скрипта указанного в инструкции на этом сайте, произошёл большой прирост производительности ! Спасибо огромное! Обычно не оставляю комментарии на сайтах, но сейчас был готов даже здесь зарегистрироваться для того чтобы это сделать!)
    (p.s. регистрация чтобы оставлять комментарии на этом сайте не понадобилась)
    Тупо лайк!

    1. У меня не получается. Можете помочь, пожалуйста?

      1. Сначала хотелось бы узнать, какой дистрибутив установлен на устройстве?

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