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

Увеличиваем производительность 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

Заключение

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

Категории:HOWTO Метки:, , , , , , ,
  1. madmentat
    14 августа 2015 в 00:23 | #1

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

  2. Kr
    12 октября 2015 в 13:26 | #2

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

  3. FrancoDelille
    8 декабря 2015 в 18:54 | #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. 8 декабря 2015 в 21:37 | #4

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

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

  5. FrancoDelille
    8 декабря 2015 в 22:32 | #5

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

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

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

  6. 9 декабря 2015 в 16:47 | #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. FrancoDelille
    9 декабря 2015 в 17:32 | #7

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

Представьтесь, пожалуйста! Если ваш комментарий предполагает ответ, мы ответим на него в ближайшее время. Адрес электронной почты должен быть действительным.


Внимание! Запрещено публиковать любые ссылки в тексте комментария, иначе он сразу же будет помечен как нежелательный и не будет опубликован на сайте.