Блог начинающего линуксоида.
советы, руководства, инструкции.
Страницы
пятница, 4 декабря 2015 г.
Как увеличить производительность игр в Linux
В данной заметке я опишу 5 способов увеличения производительности игр в Linux. Особенно это будет актуально для «виндовых» игр, запущенных в Wine.
1) Свежие драйвера на видеокарту
Первый и самый очевидный способ. В свежие версии драйверов и компонентов графического стека, вносятся новые оптимизации, устраняются недоработки и так далее. Для Ubuntu есть несколько замечательных репозиториев, которые предоставляют свежие графические драйверы:
Самый популярный PPA-репозиторий со свежайшим графическим стеком. Соответственно, используете вы его на свой страх и риск, так как в нём нет ничего стабильного. В этом репозитории находятся свежие версии Xorg, Mesa, свободных графических драйверов и так далее. Подключение:
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update && sudo apt-get upgrade
В этом репозитории находятся более стабильные, но одновременно свежие версии свободных графических драйверов, которые также имеют поддержку Wine Gallium-Nine и многое многое другое. Подключение:
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt-get update && sudo apt-get upgrade
Proprietary GPU Drivers
Данный репозиторий — новичок, но настоящий must have для всех, у кого видеокарта Nvidia. Здесь находятся самые свежие версии проприетарного драйвера для этих видеокарт. Подключение:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
Далее откройте менеджер драйверов, и там выберите желаемую версию драйвера
2) Установка патченого ядра.
В некоторых ситуациях, увеличить производительность игр, помогает установка модифицированного ядра. К примеру ядро Linux-RT (ядро реального времени), на моей конфигурации. дало мне прибавку в 12 FPS в некоторых играх. Данное ядро есть в стандартных репозиториях Ubuntu, и ставится командой:
sudo apt install linux-image-rt
Также положительный эффект могут дать ядра PF-Kernel и Zen-Kernel, о которых я говорил в недавней заметке.
3) Потоковая оптимизация (только для Nvidia с проприетарным драйвером).
Nvidia — лучший друг Линуксоида, когда речь заходит о 3D и играх. И начиная с драйвера версии 310, в нём появилась возможность серьёзно увеличить производительность, включив многопоточный рендеринг. По умолчанию данная опция не включена, так как есть приложения, которые не работают с ней (например игра Metro Last Light). Включить эту опцию можно следующими способами:
- Вручную: в терминале командой export __GL_THREADED_OPTIMIZATIONS=1 ;
- Автоматически при запуске системы: открыть файл /etc/profile и в конец вставить строку __GL_THREADED_OPTIMIZATIONS=1 ;
- Запускать приложение с этим параметром: например __GL_THREADED_OPTIMIZATIONS=1 steam , либо в самом Steam указать данную опцию в параметрах запуска игры: __GL_THREADED_OPIMIZATIONS=1 %command%
Прирост производительности составляет от 15 до 45 кадров в секунду, в зависимости от игры. Пригодится для Wine. Кстати о Wine. В Winetricks очень желательно выставить опцию GLSL в значение Disabled.
4) Запуск в отдельном X-сервере (или в отдельных иксах).
Это давний способ увеличить производительность игры, а также решить проблему со сворачиванием игры (не все они нормально сворачиваются, некоторые перестают работать. В прочем, для Windows проблема также актуальна). Для этого:
sudo nano /etc/X11/Xwrapper.config
Меняем параметр allowed_users=console на allowed_users=anybody и сохраняем. Это нужно для того, чтобы можно было запускать X-сервер от пользователя, а не root. Далее необходимо добавить себя в группу audio, иначе звука в отдельных иксах не будет:
usermod -G audio -a имяпользователя
Далее редактируем файл
/.Xauthority, для этого в консоли:
xauth
list
Увидим что-то вроде
blind.local:0 MIT-MAGIC-COOKIE-1 e087ead1f80cd5d35b6bd273222d1feb
[fe80::204:61ff:fe9e:c083]:0 MIT-MAGIC-COOKIE-1 e087ead1f80cd5d35b6bd273222d1feb
blind/unix:0 MIT-MAGIC-COOKIE-1 e087ead1f80cd5d35b6bd273222d1feb
Буквенно-цифровое окончание будет другим.
Пишем там же, вставив своё значение:
add :1.0 MIT-MAGIC-COOKIE-1 e087ead1f80cd5d35b6bd273222d1feb
Запуск производится следующей командой:
xinit /путь/до/исполняемого/файла/игры $* — :1
Например: xinit /usr/games/steam $* — :1
Запустится отдельная сессия X, и запустится указанное приложение. Переключение обратно в режим рабочего стола производится комбинацией Ctrl+Alt+F7, вторые иксы будут (в моём случае) на F2. Альтернативный вариант: переключиться на любую свободную консоль (F1-F6), залогиниться, и запустить приложение командой:
startx /путь/до/исполняемого/файла/игры — :1
Однако такой способ неудобен тем, что в случае если игра имеет лаунчер, или какие-то дополнительные окна при запуске, будут проблемы с их отрисовкой. Да и запускать это всё руками как-то муторно. Исправить эту проблему поможет любой легковесный оконный менеджер. Например Openbox. Устанавливаем:
sudo apt install openbox
Теперь создаём файл:
у вас запустится оконный менеджер Openbox, из которого вы уже можете запустить любое приложение. Если вы хотите, чтобы например Steam стартовал автоматически при запуске Openbox, сделайте так:
Сохраните. Теперь Стим будет запускаться автоматически, а вы можете легко перключаться между сеансами. ВНИМАНИЕ: у себя в KDE на Debian 8, я обнаружил баг, при котором после перехода в основные иксы и обратно на дополнительные, появлялись сильнешие графические артефакты в некоторых играх, а сам Стим отрисовывался кусками. Способа решения проблемы я не нашёл. Если вы знаете — напишите в комментариях, я добавлю в статью.
Соответственно, вместо Steam, вы можете добавить PlayOnLinux, если запускаете виндовые игры через него
5) Отключение графических эффектов (композитинга) для полноэкранных приложений.
Если вы используете KDE или Cinnamon, рекомендую отключить полноэкранный композитинг. В KDE: Параметры системы — Эффекты — Дополнительно — Поставить галочку на «Отключить графические эффекты для полноэкранных окон»
Для Cinnamon: Настройки — Общие — Отключить композитинг для полноэкранных окон
Вот и всё. Конечно это не избавит от проблемы кривых портов игр. Там уже вина разработчика игры. Но тем не менее, всё описанное здесь, неоднократно проверено и даёт весьма нехилый прирост производительности. Приятных игр!
Оптимизация Linux Mint
Сегодня я обнаружил что Linux mint 18 стал грузиться медленнее чем Linux mint 17. Что не очень хорошо для моего ноутбука. Я выяснил что это связано с ненужными службами, приложениями, визуальными эффектами. Существует множество оптимизаций, позволяющих повысить скорость работы дистрибутива Linux Mint.
В этой статье мы рассмотрим как выполняется оптимизация Linux Mint. Я покажу только максимально безопасные. Проверял их сам на Toshiba Satelite l20 — 101 с Linux Mint 18.1 xfce и на компьютере HP Elite 7200 c linux mint 18.1 MATE. Перед дальнейшими инструкциями установите все обновления, чтобы не возникло ненужных ошибок.
Оптимизация Linux Mint
1. Оперативная память
При работе с Linux Mint выполнение различных операций со временем осуществляется медленнее. К счастью, это можно минимизировать. На жестком диске существует отдельный раздел для хранения данных, помещенных в оперативную память, который называется разделом подкачки. Интенсивность использования ядром дистрибутива Linux Mint раздела подкачки может быть изменена с помощью специального параметра конфигурации системы.
Вначале надо проверить величину этого параметра. Откройте терминал — ctrl + alt + t и выполните команду:
Должно быть число 60. Дальше надо установить приложения gksu и leafpad. Можно через Synaptic или Терминал. В терминале используйте команду, она запросит ваш пароль
sudo apt install gksu leafpad
Установим новое значение параметра. Перейдите по пути /etc/ и откройте файл sysctl.conf текстовым редактором, либо командой:
gksudo leafpad /etc/sysctl.conf
В конце надо будет добавить vm.swappiness=10. Сохраните файл и перезагрузите ваш Компьютер / Ноутбук.
2. Настройка кэша inode
Только для ПК с 1 гб и больше так как это оптимизация приведет к долгому хранению системных файлов в оперативной памяти. Откройте файл /etc/sysctl.conf:
gksudo leafpad /etc/sysctl.conf
Опуститесь вниз файла и добавьте эту строчку в конце:
3. Настройка zram
Только ПК с оперативной памятью 768 Мб или больше. Внимание это может привести к нестабильной работе всей системы! Сделайте бэкап данных.
Работа данной оптимизации:
- Центральный процессор вашего компьютера (CPU) будет использоваться более интенсивно, так как будут осуществляться постоянные сжатие и распаковка данных;
- Если система полностью заполнит файл подкачки в оперативной памяти, она начнет дополнительно использовать классический раздел подкачки на жестком диске. При этом она также может переместить в этот раздел часть файла подкачки из оперативной памяти, что еще более замедлит ее работу;
- На данный момент рассматриваемый модуль все еще является экспериментальным, поэтому реализованный в рамках него дополнительный уровень хранения данных может снизить стабильность работы системы.
Нужен пакет zram-config. Можете через synaptic, но я больше люблю использовать терминал.
sudo apt install zram-config
Перезагрузите ПК после установки. Можно командой:
Надо проверить работу данного модуля:
Должен появится отчёт о разделах на /dev/zram. Если система стала работать неправильно или zram вам уже не нужен, то делаем следующее:
sudo apt purge zram-config
Если у вас мало оперативной памяти, то вы точно заметите ускорение Linux Mint 18. Подробнее про настройку zram в linux написано в другой статье.
4. Отключение индексации
Как и в Windows, в Linux есть приложение для ускорения поиска, которое также тормозит работу системы. Данное приложение удалить полностью через synaptic нельзя. Он удалит лишь его часть. Следовательно надо использовать терминал.
sudo apt purge apt-xapian-index
Перезагрузите ПК для окончания применения изменений.
5. Оптимизация LibreOffice
Как всем известно, java имеет очень медленный компилятор. Скорость запуска LibreOffice повысилась раза в 3 после отключения java. Но она стоит там не просто так. Некоторые функции требуют java. Так что если вам они нужны то не отключайте. Откройте приложение Writer.
Зайдите в меню Сервис — Параметры LibreOffice — Расширенные возможности» и убрать флажок «Использовать виртуальную машину Java». Включить поддержку можно в любой момент просто вернув галочку в том поле:
6. Настройка автозагрузки
В Wndows это msconfig, а в Linux есть несколько способов решения этой задачи. Автозапуск сильно замедляет как и запуск системы, так и работу в целом. Часть программ настраивается через графический интерфейс — Меню — Параметры — Автозапуск. В XFCE это Сеансы и запуск. Но там не все службы. Далее, я буду писать зачем нужна каждая из служб, которые я буду отключать и как их отключить через терминал. Сначала смотрим скорость загрузки системы:
$ sudo systemctl disable служба
$ sudo systemctl enable служба
avahi-daemon.service — это процесс для обнаружения ПК в домене .local. Если у вас один пк в домашней сети или у вас нет домена .local. То можно смело отключать:
sudo systemctl disable avahi-daemon.service
cgmanager.service — предназначен для управления cgroup. Служба нужна только людям использующих контейнер LXC. Этот контейнер позволяет создавать виртуальные машины почти без потерь производительности. Но я не использую виртуализацию. Отключаю:
sudo systemctl disable cgmanager.service
cups-browsed.service – это служба для принтеров. Сейчас у меня нет принтера, но если появится я просто включу эту службу.
sudo systemctl disable cgmanager.service
geoclue.service – это служба, которая отправляет вашу геолокацию приложениям. Без каких-либо вопросов отключаем:
sudo systemctl disable geoclue.service
Службы vm2-lvmetad и lvm2-monitor относятся к службам управления логическими томами (LVM – Logical Volume Management). Если вы не используете логические тома то можно отключать. Если при установке вы выбрали автоматическую, то у вас все первичные.
sudo systemctl disable vm2-lvmetad.service
sudo systemctl disable lvm2-monitor.service
Результаты выполнения может быть таким:
Failed to execute operation: No such file or directory и
Removed symlink /etc/systemd/system/sysinit.target.wants/lvm2-monitor.service
ModemManager.service – это интерфейс, позволяющий реализовать подключение к сети интернет, используя мoдемы, каналы связи (2G/3G/4G/CDMA). У меня вообще шнур так что отключаю.
sudo systemctl disable ModemManager.service
speech-dispatcher.service — это унифицированный API, который имеет предназначение для изменения порядка вызова синтезатора, так же позволяет предотвратить наложения звука при нескольких приложениях, использующих звук. Я не планирую включать сразу штук 8 песен. Так что отключаю:
sudo systemctl disable speech-dispatcher.service
ssh.service — это сервис удаленного управления системой через терминал. Я таким не пользуюсь => отключаем.
sudo systemctl disable ssh.service
ufw.service – служба межсетевого экрана. Это брандмауэр. Мне он нужен, но многим нет. Будем не отключать а удалять. Через Synaptic или терминал.
sudo apt purge ufw
Я перечислил все службы, которые можно отключить безболезненно для системы. Теперь перезагрузка и тест скорости. После отключения служб вы точно заметите ускорение работы linux mint.
Читайте подробнее про ускорение загрузки Linux в отдельной статье.
7. Настройка окружения
Визуальные эффекты делают систему красивой. Если вы любите MacOS вам не пережить их отключение. Те, кто пользовался Windows 7 aero знают как это всё тормозит.
Linux Mint Cinnamon: для начала необходимо открыть: «Меню — Параметры системы — Эффекты» и отключить все эффекты в открывшемся окне. Далее, необходимо открыть: «Меню — Параметры системы — Общие» и активировать переключатель в пункте списка «Отключить композитинг для полноэкранных окон».
Linux Mint Mate: откройте «Меню — Настройки — Окна», перейдите на вкладку «Общие» открывшегося окна и уберите флажок «Включить композитный менеджер».
Linux Mint Xfce: необходимо «Меню — Параметры рабочего стола» и изменить оконный менеджер с «Xfwm4 + Compositing» на «Xfwm4».
Не забудьте поставить фоном один сплошной цвет.
8. Браузеры
Каждое дополнительное расширение для firefox и chromium замедляют его запуск и работу. удалите ненужные вам. Например, вместо онлайн читалки поставить локальную программу.
Теперь конкретно про firefox. В первую очередь следует ввести в адресную строку веб-браузера about:config и нажать клавишу Enter. Далее, нужно нажать на кнопку Я принимаю на себя риск!.
Вам следует ввести в поле поиска на открывшейся странице запрос sessionstore и использовать двойной клик для редактирования значения параметра browser.sessionstore.interval. По умолчанию он имеет значение 15000, соответствующее 15 секундам. Вы можете добавить к значению несколько нулей таким образом, чтобы оно превратилось в значение 15000000 и нажать на кнопку OK для сохранения изменений.
Далее, переключите эти параметры в положение false:
- browser.sessionstore.restore_on_demand
- browser.sessionstore.resume_from_crash
- services.sync.prefs.sync.browser.sessionstore.restore_on_demand
Осталось закрыть все окна веб-браузера Firefox и перезапустить его.
9. Очистка Linux Mint
В Linux, как и в Windows скапливается мусор. Но в отличие от Windows у него нет реестра, что даёт возможность удалить весь мусор.
sudo apt autoclean
sudo apt autoremove
Не забудьте удалить ненужные программы. Например, мне не нужен VLC когда стоит dragon player.
sudo apt purge vlc
10. Установка драйверов
Многие забывают поставить нужные драйвера и устройства используются не на максимум своих возможностей. Например, у меня не было драйвера процессора. Откройте меню и впишите драйвера. Я заменил свободный драйвер nvidia на проприетарный. Все стало гораздо быстрее.
11. Оптимизация tmp
Если у вас много оперативной памяти можно ещё больше ускорить систему с помощью перемещения файлов с жесткого диска на виртуальный раздел в оперативной памяти. Откройте терминал.
sudo cp -v /usr/share/systemd/tmp.mount /etc/systemd/system/
sudo systemctl enable tmp.mount
systemctl status tmp.mount
Если вам он больше не нужен просто удалите его:
sudo rm -v /etc/systemd/system/tmp.mount
12. Оптимизация wifi
Оптимизация Linux Mint также может включать ускорение wifi. Узнаем как названа ваша сетевая карта в системе:
Затем вы сможете узнать название. Например, wlp2s0. Отключим энергосбережение.
gksudo xed /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
Теперь сохраняем документ и перезагружаем ПК. Выполните команду для проверки:
Если появилась надпись Power management:off то вы все настроили. Для сетевых карт intel есть особый способ ускорения, поскольку система для неё использует драйвер iwlwifi. Нужно активировать функцию Tx AMPDU.
Функция AMPDU предназначена для ускорения передачи данных путем объединения нескольких наборов данных друг с другом. До версии 18.1 включалась автоматически, но была убрана из-за проблемных чипсетов.
В первую очередь следует убедиться в том, что для взаимодействия с чипсетом вашей беспроводной сетевой карты используется именно драйвер iwlwifi.
lsmod | grep iwlwifi
Если появилась строка «iwlwifi» то можно продолжать.
echo «options iwlwifi 11n_disable=8» | sudo tee /etc/modprobe.d/iwlwifi11n.conf
Теперь нужно перезагрузить ПК. Перед перезагрузкой запишите себе эту команду:
sudo rm -v /etc/modprobe.d/iwlwifi11n.conf
Она нужна для отката изменений если сеть не будет работать.
Выводы
Теперь вы знаете как выполняется ускорение Linux Mint 18. Я очень надеюсь что помог другим пользователям. Пишите в комментариях вашу скорость запуска и скорость работы после проделанных изменений. Насколько вам помогла оптимизация Linux Mint 18 по сравнению с тем, как было раньше?