generic-system-acceleration.rst 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163
  1. .. ARU (c) 2018 - 2022, Pavel Priluckiy, Vasiliy Stelmachenok and contributors
  2. ARU is licensed under a
  3. Creative Commons Attribution-ShareAlike 4.0 International License.
  4. You should have received a copy of the license along with this
  5. work. If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
  6. .. _generic-system-acceleration:
  7. ***************************
  8. Базовое ускорение системы
  9. ***************************
  10. Переходя к базовой оптимизации системы мне сто́ит напомнить, что чистый
  11. Arch Linux - это фундамент, и требуется уйма надстроек для нормальной
  12. работы системы. Установить компоненты, которые будут отвечать за
  13. электропитание, чистку, оптимизацию и тому подобные вещи, что и
  14. описывается в данном разделе.
  15. .. index:: makepkg-conf, native-compilation, flags, lto
  16. .. _makepkg-conf:
  17. ======================
  18. Настройка makepkg.conf
  19. ======================
  20. Прежде чем приступать к сборке пакетов, мы должны изменить так
  21. называемые флаги компиляции, что являются указателями для компилятора,
  22. какие инструкции и оптимизации использовать при сборке программ.
  23. Для этого создадим пользовательский конфиг ``~/.makepkg.conf`` в домашней
  24. директории, чтобы переопределить системные настройки:
  25. .. code-block:: shell
  26. :caption: ``nano ~/.makepkg.conf``
  27. CFLAGS="-march=native -mtune=native -O2 -pipe -fno-plt -fexceptions \
  28. -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security \
  29. -fstack-clash-protection -fcf-protection"
  30. CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
  31. RUSTFLAGS="-C opt-level=3 -C target-cpu=native -C link-arg=-z -C link-arg=pack-relative-relocs"
  32. MAKEFLAGS="-j$(nproc) -l$(nproc)"
  33. .. note:: Где "-O2" - **Это не нуль/ноль**
  34. Данные флаги компилятора выжимают максимум производительности при
  35. компиляции, но могут вызывать ошибки сборки в очень редких
  36. приложениях. Если такое случится, то отключите параметр ‘lto’ в строке
  37. ``options`` добавив перед ним символ восклицательного знака !
  38. (*"!lto"*).
  39. .. index:: makepkg, tmpfs, native-compilation
  40. .. _makepkg_tmpfs:
  41. ---------------------------------------
  42. Использование tmpfs для сборки в ОЗУ
  43. ---------------------------------------
  44. Во время сборки программ компилируются множество временных
  45. промежуточных файлов и записываются на диск (HDD/SSD) для последующей
  46. компоновки в исполняемый файл или библиотеку. Для ускорения процесса
  47. сборки пакетов можно использовать вместо HDD/SSD - оперативную память,
  48. а точнее *tmpfs*. Поскольку ОЗУ значительно быстрее любого HDD или
  49. SSD, то сборка происходит быстрее. Помимо этого уменьшается нагрузка
  50. на систему ввода-вывода, и как следствие меньше изнашивается диск.
  51. Использовать tmpfs для makepkg можно несколькими способами:
  52. - Непосредственно указывать переменную перед сборкой::
  53. BUILDDIR=/tmp/makepkg makepkg -sric
  54. - Для сборки всего - задать параметр (раскомментировать в файле
  55. ``/etc/makepkg.conf``) ``BUILDDIR`` для использования директории
  56. ``/tmp``::
  57. BUILDDIR=/tmp/makepkg
  58. - Создать отдельную директорию *tmpfs* заданного размера:
  59. - Необходимо добавить в ``/etc/fstab`` директорию для монтирования
  60. *tmpfs*, указав путь и максимальный объём директории, которая
  61. может расширяться при работе *tmpfs* (учтите что *tmpfs*
  62. использует ОЗУ, поэтому внимательно подходите к вопросу
  63. выделяемого объема, он не должен превышать общий объем доступной
  64. памяти, несмотря на то, что изначально *tmpfs* ничего не
  65. занимает), например::
  66. tmpfs /var/tmp/makepkg tmpfs rw,nodev,nosuid,size=16G 0 0
  67. - Далее, как и в предыдущем случае, указать ``BUILDDIR`` в
  68. ``/etc/makepkg.conf``, но уже с путем к директории указанной в
  69. *fstab*::
  70. BUILDDIR=/var/tmp/makepkg
  71. .. attention:: На системах с небольшим количеством ОЗУ (например 4 ГБ
  72. и менее) *tmpfs* может негативно сказаться на сборке тяжёлых
  73. пакетов, что может привести к недостатку ОЗУ для сборки.
  74. .. note:: Можно указать параметр PKGDEST для определения
  75. директории собранного пакета.
  76. Количество доступного и используемого места в *tmpfs* можно
  77. посмотреть::
  78. df -h | grep tmpfs
  79. .. index:: makepkg, ccache, native-compilation
  80. .. _enabling_ccache:
  81. -----------------------
  82. Включение ccache
  83. -----------------------
  84. В Linux системах есть не так много программ, сборка которых может
  85. занять больше двух часов, но они все таки есть. Потому, было бы
  86. неплохо ускорить повторную компиляцию таких программ как
  87. Wine/Proton-GE и т.д.
  88. ccache - это кэш для компиляторов C/C++, в частности совместимый с
  89. компиляторами GCC/Clang, цель которого состоит в ускорении повторного
  90. процесса компиляции одного и того же кода. Это значит, что если при
  91. сборке программы новой версии, будут замечены полностью идентичные
  92. блоки исходного кода в сравнении с его старой версией, то компиляция
  93. этих исходных текстов производиться не будет. Вместо этого, уже
  94. готовый, скомпилированный код старой версии будет вынут из кэша
  95. ccache. За счёт этого и достигается многократное ускорение процесса
  96. компиляции.
  97. **Установка** ::
  98. sudo pacman -S ccache
  99. После установки его ещё нужно активировать в ваших настройках makepkg.
  100. Для этого отредактируем конфигурационный файл
  101. .. code-block:: shell
  102. :caption: ``nano ~/.makepkg.conf``
  103. BUILDENV=(!distcc color ccache check !sign)
  104. После этого повторная пересборка желаемых программ и их обновление
  105. должны значительно ускориться.
  106. .. attention:: ccache может ломать сборку некоторых программ, поэтому
  107. будьте осторожны с его применением.
  108. .. index:: installation, ananicy, zram, nohang, trim
  109. .. _daemons-and-services:
  110. ======================================
  111. Установка полезных служб и демонов
  112. ======================================
  113. .. index:: zram, swap
  114. .. _zram-generator:
  115. -----------------
  116. zram-generator
  117. -----------------
  118. `zram-generator
  119. <https://aur.archlinux.org/packages/zram-generator/>`__ — демон для
  120. создания блочных устройств ZRAM. ZRAM - это альтернативный механизм
  121. подкачки в ядре Linux, который позволяет избавиться от обычной
  122. подкачки на диске и сжимать неиспользуемые данные прямо внутри памяти
  123. ресурсами CPU. Больше подробностей о том, как именно работает подкачка
  124. и в частности ZRAM вы можете в разделе :ref:`kernel-tuning`. Установка
  125. ``zram-generator`` выполняется всего парой команд::
  126. sudo pacman -S zram-generator
  127. sudo systemctl start systemd-zram-setup@zram0.service
  128. Имеет смысл выполнить также небольшую дополнительную настройку
  129. параметров ZRAM:
  130. .. code-block:: shell
  131. :caption: ``sudo nano /etc/systemd/zram-generator.conf``
  132. [zram0]
  133. zram-size = ram
  134. compression-algorithm = zstd
  135. swap-priority = 100
  136. fs-type = swap
  137. Здесь мы указываем размер ZRAM равным количеству оперативной памяти, а
  138. также алгоритм сжатия zstd. Это позволит экономить больше памяти, так
  139. как по заверениям разработчиков, эффективность сжатия в среднем равна
  140. 1:3, что позволяет хранить внутри ZRAM объем данных больший, чем вы в
  141. принципе можете уместить в ОЗУ.
  142. .. warning:: Во избежание конфликтов, после установки zram обязательно
  143. отключите zswap через добавление параметра ядра ``zswap.enabled=0``.
  144. .. note:: Как уже было сказано ранее, сжатие страниц в памяти
  145. осуществляется ресурсами CPU, но если он у вас достаточно слабый,
  146. то вы можете оказаться чувствительными к задержкам на
  147. распаковку/сжатие большого объема страниц. В этом случае имеет
  148. смысл либо вернуться к использованию обычного свопа, либо
  149. использовать менее ресурсоемкий алгоритм сжатия
  150. (``compression-algorithm``) как ``lzo``.
  151. .. index:: oom, systemd
  152. .. _oom_killer:
  153. ---------------
  154. systemd-oomd
  155. ---------------
  156. OOM киллером называют специальный демон, который предотвращает
  157. возникновение так называемых OOM (Out-Of-Memory) ситуаций. Если по
  158. простому, то он просто убивает самый "жирный" процесс в группе
  159. процессов (cgroup) прежде, чем он забьет всю память и ваш компьютер
  160. зависнет. В ядре Linux уже есть встроенный OOM киллер, но он
  161. отличается медленной скоростью реакции, поэтому лучше использовать OOM
  162. киллер в пространстве пользователя. Система инициализации systemd
  163. предлагает встроенный OOM киллер - ``systemd-oomd``, который
  164. отличается малым потреблением ресурсом в фоне и не создает нагрузки на
  165. процессор, которая свойственна другим OOM киллерам из-за отслеживания
  166. потребления памяти процессов без использования механизма PSI,
  167. предлагаемым ядром Linux. Поэтому именно его и рекомендуется
  168. использовать. Включить его можно при помощи данной команды::
  169. sudo systemctl enable --now systemd-oomd
  170. .. index:: ananicy, cpu, io, renice
  171. .. _ananicy_cpp:
  172. --------------
  173. Ananicy CPP
  174. --------------
  175. `Ananicy CPP <https://gitlab.com/ananicy-cpp/ananicy-cpp>`__ — это
  176. форк одноименного демона, распределяющий приоритет задач. Его
  177. установка очень сильно повышает отклик системы. В отличии от
  178. оригинального Ananicy, данный форк переписан полностью на C++, из-за
  179. чего достигается прирост в скорости работы. ::
  180. git clone https://aur.archlinux.org/ananicy-cpp.git # Скачивание исходников.
  181. cd ananicy-cpp # Переход в ananicy-cpp.
  182. makepkg -sric # Сборка и установка.
  183. sudo systemctl enable --now ananicy-cpp # Включаем службу.
  184. # Далее описывается установка дополнительных правил по перераспределению приоритетов процессов
  185. git clone https://aur.archlinux.org/cachyos-ananicy-rules-git.git
  186. cd cachyos-ananicy-rules-git
  187. makepkg -sric
  188. sudo systemctl restart ananicy-cpp
  189. .. index:: ssd, trim, systemd
  190. .. _trim:
  191. -----
  192. TRIM
  193. -----
  194. `TRIM
  195. <https://ru.wikipedia.org/wiki/Trim_(команда_для_накопителей)>`__ -
  196. это встроенная команда контроллера для очищения уже неиспользуемых
  197. ячеек на твердотельном накопителе. Её очень полезно периодически
  198. выполнять с целью профилактики SSD. Чтобы это происходило
  199. автоматически раз в неделю рекомендуется включить уже готовую службу::
  200. sudo systemctl enable fstrim.timer
  201. Если по каким-то причинам вы не используете systemd или вам нужно
  202. выполнить TRIM прямо сейчас воспользуйтесь одноименной командой
  203. ``fstrim``::
  204. sudo fstrim -v /
  205. .. warning:: Если вы используйте файловую систему Btrfs и имеете
  206. версию ядра 6.2 и выше, то выполнять включение службы для
  207. осуществления периодическего выполнения команды TRIM - не нужно, т.
  208. к. Btrfs сам выполняет её в асинхронном режиме.
  209. .. index:: pacman, cache, cleaner
  210. .. _pacman_cleaner:
  211. -----------------------------------
  212. Автоматическая очистка кэша pacman
  213. -----------------------------------
  214. Кэш пакетов pacman имеет плохое свойство забиваться и со временем
  215. занимает много места на диске. Чтобы этого не происходило, создадим
  216. небольшой демон, который будет автоматически его очищать, например,
  217. каждую неделю. В этом нам могут встроенные средства systemd для
  218. создания таймеров - специальных служб, которые устанавливают
  219. периодичность выполнения того или иного события, например, запуска
  220. другой службы (в нашем случае службы очистки кэша). Напишем таймер,
  221. выполняющий команду ``pacman -Scc`` регулярно раз в неделю с периодом
  222. проверки времени один раз в час. Для этого сначала создадим службу,
  223. которая будет регулярно выполняться, назовем её
  224. ``pacman-cleaner.service``:
  225. .. code-block:: shell
  226. :caption: ``/etc/systemd/system/pacman-cleaner.service``
  227. [Unit]
  228. Description=Cleans pacman cache
  229. [Service]
  230. Type=oneshot
  231. ExecStart=/usr/bin/pacman -Scc --noconfirm
  232. [Install]
  233. WantedBy=multi-user.target
  234. И для этой службы создадим соответствующий таймер, который будет активировать её
  235. выполенение каждую неделю:
  236. .. code-block:: shell
  237. :caption: ``/etc/systemd/system/pacman-cleaner.timer``
  238. [Unit]
  239. Description=Run clean of pacman cache every week
  240. [Timer]
  241. OnCalendar=weekly
  242. AccuracySec=1h
  243. Persistent=true
  244. [Install]
  245. WantedBy=timers.target
  246. Не забываем включить этот самый таймер::
  247. sudo systemctl enable --now pacman-cleaner.timer
  248. .. index:: irq, kernel, latency
  249. .. _irqbalance:
  250. -------------
  251. irqbalance
  252. -------------
  253. `irqbalance <https://github.com/Irqbalance/irqbalance>`__ - это демон,
  254. что автоматически балансирует обработку прерываний по ядрам
  255. процессора. ::
  256. sudo pacman -S irqbalance
  257. sudo systemctl enable --now irqbalance
  258. .. index:: systemd, disabling, services, gsd, cinnamon
  259. .. _disabling-unnecessary-services:
  260. =========================
  261. Отключение лишних служб
  262. =========================
  263. Мы разобрались с установкой и включением полезных служб, теперь
  264. неплохо было бы отключить все лишнее, что есть в системе. Для этого
  265. прежде всего нужно проанализировать какие службы тормозят запуск
  266. системы при помощи следующей команды: ``systemd-analyze blame`` - она
  267. отсортирует все службы по скорости их загрузки. Не следует торопиться
  268. и отключать все подряд, нужно внимательно вчитываться в описание
  269. каждой службы. Стоит обратить свое внимание также на пользовательские
  270. службы рабочих окружений KDE Plasma, GNOME и Cinnamon (если вы их не
  271. используете, то можете просто пропустить разделы связанные с ними).
  272. .. index:: services, daemons, file-indexing, tracker3
  273. .. _disabling-file-indexing:
  274. -----------------------------
  275. Службы индексирования файлов
  276. -----------------------------
  277. Многие пользователи Windows знают о службе индексирования поиска,
  278. которая занимается тем, что в фоновом режиме проходит по всей файловой
  279. системе в поисках новых файлов или каталогов, чтобы внести их в
  280. собственную базу, которая будет использована для ускорения встроенного
  281. поиска или поиска в файловом менеджере. На первый взгляд все звучит
  282. хорошо, но на деле процессы всех подобных служб являются очень
  283. прожорливыми и часто создают чрезмерную нагрузку на диск.
  284. В Linux подобные службы есть только у рабочих окружений GNOME и KDE
  285. Plasma. В KDE Plasma встроенным файловым индексатором является Baloo,
  286. который отличается своей склонностью часто "подтекать" с точки зрения
  287. потребления памяти, а в GNOME есть Tracker 3, который хоть и менее
  288. прожорливый по сравнению с аналогом от KDE, но все ещё потребляет не
  289. мало ресурсов.
  290. Так как отключение всех подобных служб может положительно влиять на
  291. жизненный цикл вашего носителя, то рекомендуется выполнить это сразу
  292. после установки в зависимости от вашего рабочего окружения:
  293. .. tab-set::
  294. .. tab-item:: GNOME
  295. ::
  296. systemctl --user mask tracker-extract-3 tracker-miner-fs-3 \
  297. tracker-miner-fs-control-3 tracker-miner-rss-3 tracker-writeback-3 \
  298. tracker-xdg-portal-3
  299. rm -rf ~/.cache/tracker ~/.local/share/tracker
  300. .. tab-item:: KDE Plasma
  301. ::
  302. balooctl6 suspend
  303. balooctl6 disable
  304. balooctl6 purge
  305. .. warning:: Обратите внимание, что после отключения встроенный поиск
  306. в GNOME и KDE Plasma может работать немного медленнее.
  307. .. index:: services, gnome, cinnamon, gsd, csd
  308. .. _disabling_gcsd_services:
  309. ------------------------------------------------
  310. Отключение пользовательских служб GNOME/Cinnamon
  311. ------------------------------------------------
  312. GSD (gnome-settings-daemon) - это, как следует из названия, службы
  313. настройки GNOME и связанных приложений. Если отойти от строгого
  314. определения, то это просто службы-настройки на все случаи жизни,
  315. которые просто висят у вас в оперативной памяти в ожидании когда вам,
  316. или другому приложению, к примеру, понадобиться настроить или
  317. интегрировать поддержку планшета Wacom в рабочее окружение, или для
  318. уведомления вас о различных событиях, таких как недостаточное место на
  319. диске или начале печати, а также для применения изменений совершенных
  320. в настройках GNOME на лету. Так как другое рабочее окружение - Cinnamon,
  321. является форком GNOME 3, то оно также имеет собственные службы
  322. настройки, называемые CSD службами, и большая часть из них являются
  323. "близницами" тех служб, которые есть в GNOME, поэтому их функционал во
  324. многом совпадает. Все команды по отключению служб с одинаковым
  325. назначением в обоих окружения будут продублированы.
  326. Служба интеграции рабочего окружения с графическим планшетом Wacom.
  327. Позволяет настраивать яркость планшета средствами окружения (GNOME или
  328. Cinnamon). Если у вас такого нет - смело отключайте:
  329. .. tab-set::
  330. .. tab-item:: GNOME
  331. ::
  332. systemctl --user mask org.gnome.SettingsDaemon.Wacom.service
  333. .. tab-item:: Cinnamon
  334. ::
  335. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-wacom.desktop ~/.config/autostart
  336. echo "Hidden=true" >> ~/.config/autostart/cinnamon-settings-daemon-wacom.desktop
  337. Служба уведомления о начале печати. Если нет принтера или
  338. вам просто не нужны эти постоянные уведомления - отключаем:
  339. .. tab-set::
  340. .. tab-item:: GNOME
  341. ::
  342. systemctl --user mask org.gnome.SettingsDaemon.PrintNotifications.service
  343. .. tab-item:: Cinnamon
  344. ::
  345. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-print-notifications.desktop ~/.config/autostart
  346. echo "Hidden=true" >> ~/.config/autostart/cinnamon-settings-daemon-print-notifications.desktop
  347. Службы управления цветовыми профилями дисплея и принтеров. Если вы
  348. отключите данную службу, то не будет работать тёплый режим экрана
  349. (Системный аналог Redshift):
  350. .. tab-set::
  351. .. tab-item:: GNOME
  352. ::
  353. systemctl --user mask org.gnome.SettingsDaemon.Color.service
  354. .. tab-item:: Cinnamon
  355. ::
  356. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-color.desktop ~/.config/autostart
  357. echo "Hidden=true" >> ~/.config/autostart/cinnamon-settings-daemon-color.desktop
  358. Отключение службы управления специальными возможностями системы:
  359. .. tab-set::
  360. .. tab-item:: GNOME
  361. ::
  362. systemctl --user mask org.gnome.SettingsDaemon.A11ySettings.service
  363. .. tab-item:: Cinnamon
  364. ::
  365. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-a11y-*.desktop ~/.config/autostart
  366. echo "Hidden=true" >> ~/.config/autostart/cinnamon-settings-daemon-a11y-*.desktop
  367. .. attention:: Не отключать данную службу людям с ограниченными
  368. возможностями (инвалидам)!
  369. Службы управления беспроводными интернет-подключениями и Bluetooth. Не
  370. рекомендуется отключать для ноутбуков с активным использованием Wi-Fi
  371. и Bluetooth, но если вы используете настольный ПК без использования
  372. беспроводных технологий, то смело отключайте:
  373. .. tab-set::
  374. .. tab-item:: GNOME
  375. ::
  376. systemctl --user mask org.gnome.SettingsDaemon.Wwan.service
  377. systemctl --user mask org.gnome.SettingsDaemon.Rfkill.service
  378. .. tab-item:: Cinnamon
  379. ::
  380. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-rfkill.desktop ~/.config/autostart
  381. echo "Hidden=true" >> ~/.config/autostart/cinnamon-settings-daemon-rfkill.desktop
  382. Отключение службы защиты от неавторизованных USB устройств при
  383. блокировке экрана:
  384. .. tab-set::
  385. .. tab-item:: GNOME
  386. ::
  387. systemctl --user mask org.gnome.SettingsDaemon.UsbProtection.service
  388. .. note:: Данная служба может быть полезна если у вас ноутбук и вы
  389. часто посещаете вместе ним общественные места.
  390. Службу для автоматической блокировки экрана. Можете отключить по
  391. собственному желанию:
  392. .. tab-set::
  393. .. tab-item:: GNOME
  394. ::
  395. systemctl --user mask org.gnome.SettingsDaemon.ScreensaverProxy.service
  396. .. tab-item:: Cinnamon
  397. ::
  398. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-screensaver-proxy.desktop ~/.config/autostart
  399. echo "Hidden=true" >> ~/.config/autostart/cinnamon-settings-daemon-screensaver-proxy.desktop
  400. Служба для автоматического управления общим доступом к файлам и
  401. директориям. Если никогда не пользовались, можете отключить:
  402. .. tab-set::
  403. .. tab-item:: GNOME
  404. ::
  405. systemctl --user mask org.gnome.SettingsDaemon.Sharing.service
  406. .. note:: Данная служба есть только в окружении GNOME.
  407. Служба интеграции рабочего окружения с карт-ридером. Если у вас
  408. карт-ридера нет, то смело отключайте:
  409. .. tab-set::
  410. .. tab-item:: GNOME
  411. ::
  412. systemctl --user mask org.gnome.SettingsDaemon.Smartcard.service
  413. .. tab-item:: Cinnamon
  414. ::
  415. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-smartcard.desktop ~/.config/autostart
  416. echo "Hidden=true" >> cinnamon-settings-daemon-smartcard.desktop
  417. Служба автоматического оповещения вас о недостаточном количестве
  418. свободного места на диске. Если вы делаете это самостоятельно при
  419. помощи специальных средств, как например Baobab, то можно отключить
  420. данную службу:
  421. .. tab-set::
  422. .. tab-item:: GNOME
  423. ::
  424. systemctl --user mask org.gnome.SettingsDaemon.Housekeeping.service
  425. .. tab-item:: Cinnamon
  426. ::
  427. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-housekeeping.desktop ~/.config/autostart
  428. echo "Hidden=true" >> cinnamon-settings-daemon-housekeeping.desktop
  429. Служба управления питанием и функциями энергосбережения. Рекомендуется
  430. оставить эту службу включенной если у вас ноутбук, т. к. без неё не
  431. будет работать регулирование яркости средствами рабочего окружения и
  432. управление сном, но можете отключить, если у вас настольный ПК:
  433. .. tab-set::
  434. .. tab-item:: GNOME
  435. ::
  436. systemctl --user mask org.gnome.SettingsDaemon.Power.service
  437. .. tab-item:: Cinnamon
  438. ::
  439. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-power.desktop ~/.config/autostart
  440. echo "Hidden=true" >> cinnamon-settings-daemon-power.desktop
  441. Служба интеграции работы буфера обмена c Cinnamon. Если вы никогда не
  442. пользовались виджетом истории буфера обмена в трее, то можете
  443. отключить данную службу:
  444. .. tab-set::
  445. .. tab-item:: Cinnamon
  446. ::
  447. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-clipboard.desktop ~/.config/autostart
  448. echo "Hidden=true" >> cinnamon-settings-daemon-clipboard.desktop
  449. .. note:: Данная служба есть только в окружении Cinnamon.
  450. Служба для автоматического подстраивания интерфейса Cinnamon при
  451. повороте дисплея. Если у вас нет сенсорного экрана или поддержки
  452. переворота дисплея - смело отключайте:
  453. .. tab-set::
  454. .. tab-item:: Cinnamon
  455. ::
  456. cp -v /etc/xdg/autostart/cinnamon-settings-daemon-orientation.desktop ~/.config/autostart
  457. echo "Hidden=true" >> cinnamon-settings-daemon-orientation.desktop
  458. .. note:: Данная служба есть только в окружении Cinnamon.
  459. Если после отключения какой-либо из вышеперечисленных служб что-то
  460. пошло не так, или просто какую-либо из них понадобилось снова
  461. включить, то выполните следующую команду в зависимости от
  462. используемого рабочего окружения предварительно подставив
  463. имя в неё нужной службы:
  464. .. tab-set::
  465. .. tab-item:: GNOME
  466. ::
  467. systemctl --user unmask --now СЛУЖБА
  468. .. tab-item:: Cinnamon
  469. ::
  470. rm ~/.config/autostart/cinnamon-settings-daemon-СЛУЖБА.desktop
  471. Служба вернется в строй после перезагрузки рабочего окружения.
  472. .. index:: service, daemons, plasma
  473. .. _disabling-plasma-daemons:
  474. ---------------------------------
  475. Отключение ненужных служб Plasma
  476. ---------------------------------
  477. По аналогии с GNOME, у Plasma тоже есть свои службы настройки, которые
  478. хоть и гораздо менее требовательны к ресурсам. Тем не менее, это по
  479. прежнему солянка из различных процессов, которые вам далеко не всегда
  480. пригодятся, а отключая ненужные из них вы можете чуть снизить
  481. потребление оперативной памяти вашей оболочкой, т.к. по умолчанию все
  482. службы включены.
  483. Настройка служб происходит в графических настройках Plasma, в разделе
  484. "*Запуск и завершение*" -> *"Управление службами"*
  485. .. image:: https://codeberg.org/ventureo/ARU/raw/branch/main/archive/DE-Optimizations/images/image12.png
  486. .. list-table:: Список служб рекомендуемых к отключению
  487. :widths: 25 75
  488. :header-rows: 1
  489. * - Название службы
  490. - Описание
  491. * - Запуск системного монитора
  492. - Отслеживает нажатие клавиш Ctrl+Esc для запуска системного
  493. монитора. Не думаю, кто-либо активно этим пользовался ранее,
  494. поэтому лучше отключить.
  495. * - Напоминание об установке расширения браузера
  496. - Довольно бесполезная служба, отключаем.
  497. * - Bluetooth
  498. - Отключайте, если у вас нет модуля Bluetooth или вы им не
  499. пользуйтесь (Данный пункт может отсутствовать если не установлен
  500. пакет ``bluedevil``).
  501. * - Настройки прокси-серверов
  502. - Отключайте, если не используете системный прокси/VPN.
  503. * - Учётный записи
  504. - Нужна только если у вас больше одной учетной записи на
  505. компьютере.
  506. * - Сенсорная панель
  507. - Отключаем, если сенсорная панель отсутствует или вы ей не
  508. пользуетесь.
  509. * - Обновление местоположения для коррекции цвета
  510. - Служба, которая автоматически корректирует "температуру"
  511. теплого режима экрана в зависимости от вашего местоположения.
  512. Отключайте, если не используете теплый режим или не желаете
  513. раскрывать собственное местоположение.
  514. * - Модуль шифрования папок рабочей среды Plasma
  515. - Отключайте, если вы не используете шифрование для отдельных
  516. файлов или имеете уже шифрование для всей системы.
  517. * - Слежение за изменениями в URL
  518. - Работает только в сетевых папках просматриваемых через Dolphin.
  519. Если вы не часто используете сетевые диски или сервисы, то
  520. рекомендуется отключить.
  521. * - Слежение за свободным местом на диске
  522. - Автоматически оповещает вас о недостаточном количестве
  523. свободного места на диске. Если вы делаете это самостоятельно
  524. при помощи специальных виджетов, то можно отключить.
  525. * - SMART
  526. - Автоматически отслеживает состояние вашего SSD носителя.
  527. Довольно полезная служба, но если вы предпочитаете делать это
  528. самостоятельно, то можете отключить.
  529. * - Действия
  530. - Обеспечивает действий назначенных пользователем в настройках
  531. Dolphin/других приложения. Если вы их не используете, то можете
  532. отключить.
  533. * - Модуль для управления сетью
  534. - Добавляет системный лоток виджет для управления сетевыми
  535. подключениями. Отключайте, если не используете NetworkManager.
  536. * - Состояние сети
  537. - Оповещает пользователя в случае неработоспособности
  538. интернет-соединения. Так как понять это можно будет и по
  539. косвенным признакам, то службу можно отключать.
  540. * - Служба синхронизации параметров GNOME/GTK
  541. - Осуществляет смену темы применяемой для приложений GTK на лету.
  542. Если отключить, то смена GTK темы будет применяться только
  543. после перезагрузки оболочки.
  544. * - Обновление папок поиска
  545. - Автоматически обновляет результаты поиска файлов. Отключаем на
  546. свое усмотрение. Кроме того, судя по всему работает только в
  547. Dolphin.
  548. * - Служба локальных сообщений
  549. - Формирует уведомления для сообщений передаваемых между
  550. терминалами через команды wall и write. В настоящий момент это
  551. очень редко используется и может быть нужно только на
  552. многопользовательских системах, поэтому можно смело отключать.
  553. * - Подключение внешних носителей
  554. - Автоматически примонтирует внешние устройства при их
  555. подключении. Например, такие как USB-флешки. Отключайте на свое
  556. усмотрение, но в целях безопасности рекомендуется отключить.
  557. * - Часовой пояс
  558. - Информирует другие приложения об изменении системного часового
  559. пояса. Довольно редко применимо, можно отключить.
  560. * - Фоновая служба меню приложений
  561. - Немного странная служба. По своему назначению она осуществляет
  562. обновление "Меню Приложений" при появлении новых ярлыков,
  563. однако даже при её отключении этот функционал работает.
  564. Отключайте на свое усмотрение.
  565. .. index:: installation, lowlatency, audio, pipewire
  566. .. _lowlatency-audio:
  567. ==================================
  568. Низкие задержки звука (PipeWire)
  569. ==================================
  570. `PipeWire <https://wiki.archlinux.org/title/PipeWire_(Русский)>`_ -
  571. это новая альтернатива PulseAudio, которая призвана избавить от
  572. проблем PulseAudio, уменьшить задержки звука и потребление памяти. ::
  573. sudo pacman -S pipewire pipewire-pulse pipewire-jack lib32-pipewire gst-plugin-pipewire wireplumber
  574. systemctl --user enable --now pipewire pipewire.socket pipewire-pulse wireplumber
  575. .. note:: Пакет ``lib32-pipewire`` нужен для правильной работы звука в
  576. 32-битных играх (в том числе запускаемых через Wine) или
  577. приложениях.
  578. .. note:: PipeWire и WirePlumber поставляются по умолчанию в Arch
  579. Linux для новых установок:
  580. https://gitlab.archlinux.org/archlinux/packaging/packages/pipewire/-/commit/14614b08f6f8cf8e50b4cbb78a141e82066e7f80
  581. Для непосредственно уменьшения самих задержек установим дополнительный
  582. пакет ``realtime-privileges`` и добавим пользователя в группу
  583. ``realtime``::
  584. sudo pacman -S realtime-privileges rtkit
  585. sudo usermod -aG realtime "$USER"
  586. Дополнительно советуем установить реализацию Jack API. См. раздел
  587. ниже.
  588. .. index:: pipewire, lowlatency, audio, sound
  589. .. _pipewire_setup:
  590. --------------------
  591. Настройка PipeWire
  592. --------------------
  593. Несмотря на то, что настройки по умолчанию могут работать достаточно
  594. хорошо для большинства оборудования, имеет смысл выполнить
  595. дополнительную настройку для улучшения качества звука (особенно если
  596. вы являетесь обладателем ЦАП или полноценной звуковой карты).
  597. Перед началом создадим пути для хранения конфигурационных файлов в
  598. домашней директории::
  599. mkdir -p ~/.config/pipewire/pipewire.conf.d
  600. В появившейся директории создадим файл со следующим содержанием:
  601. .. code-block:: shell
  602. :caption: ``nano ~/.config/pipewire/pipewire.conf.d/10-sound.conf``
  603. context.properties = {
  604. default.clock.rate = 48000
  605. default.clock.allowed-rates = [ 44100 48000 88200 96000 ]
  606. default.clock.min-quantum = 2048
  607. }
  608. Обратите внимание на параметры ``default.clock.rate`` и
  609. ``default.clock.allowed-rates``. Они устанавливают частоту
  610. дискретизации по умолчанию и доступные частоты в целом соответственно.
  611. Вы должны указать их в соответствии с возможностями вашего устройства
  612. вывода звука (звуковой карты/ЦАПа). Чтобы узнать максимально доступную
  613. частоту дискретизации, используйте команду (при условии, что установлен
  614. пакет ``pipewire-pulse``)::
  615. pactl list sinks | grep "Sample Specification" -B 2
  616. Если устройств несколько, то устанавливайте частоту того, которое
  617. используется непосредственно для вывода звука.
  618. Для устройств с большим диапозоном доступных частот в качестве примера
  619. можно привести следующие значения::
  620. default.clock.rate = 192000
  621. default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 768000 ]
  622. .. index:: pipewire, upmix, 5.1, sound
  623. .. _upmixing-5.1:
  624. ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  625. Микширование стерео в 5.1
  626. ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  627. PipeWire так же как и PulseAuido позволяет микшировать звук в 5.1.
  628. Эта возможность отключена по умолчанию, но для неё существует заранее
  629. подготовленный конфигурационный файл, который нам нужно просто
  630. перенести в домашнюю директорию::
  631. mkdir -p ~/.config/pipewire/pipewire-pulse.conf.d
  632. cp /usr/share/pipewire/client-rt.conf.avail/20-upmix.conf ~/.config/pipewire/pipewire-pulse.conf.d
  633. cp /usr/share/pipewire/client-rt.conf.avail/20-upmix.conf ~/.config/pipewire/client-rt.conf.d
  634. .. index:: pipewire, choppy, high-load, cpu, sound
  635. .. _choppy-audio:
  636. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  637. Исправление хрипов под нагрузкой
  638. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  639. Некоторые пользователи после перехода на PipeWire могут столкнуться с
  640. появлением "хрипов" во время произведения звука, если система находится
  641. под высокой нагрузкой (например, фоновой компиляцией или во время игры).
  642. Это происходит потому, что PipeWire старается осуществлять вывод с
  643. звука с наименьшими задержками, что сложно гарантировать когда
  644. система нагружена даже с установленными ``realtime-privileges``.
  645. Для их исправления отредактируем файл, который мы создали выше, и
  646. изменим следующие значения для размера буфера по умолчанию:
  647. .. code-block:: shell
  648. :caption: ``nano ~/.config/pipewire/pipewire.conf.d/10-sound.conf``
  649. context.properties = {
  650. default.clock.rate = 96000
  651. default.clock.allowed-rates = [ 44100 48000 88200 96000 ]
  652. default.clock.min-quantum = 2048
  653. default.clock.quantum = 4096
  654. default.clock.max-quantum = 8192
  655. }
  656. Здесь вы должны изменить только значение параметра ``quantum`` до
  657. 4096. Остальные значения как ``default.clock.rate`` и
  658. ``default.clock.allowed-rates`` вы должны указывать с учетом
  659. вашего оборудования, как уже говорилось выше.
  660. -----------------
  661. Реализации JACK
  662. -----------------
  663. Существует три различных реализации JACK API: просто jack из AUR,
  664. jack2 и pipewire-jack. Наглядное сравнение их возможностей показано
  665. таблицей ниже:
  666. .. image:: images/jack-implementations.png
  667. Установите один из вышеуказанных пакетов. Для поддержки 32-битных
  668. приложений также установите пакет lib32-jack из AUR, lib32-jack2 или
  669. lib32-pipewire-jack (соответственно) из репозитория multilib.
  670. Для официальных примеров клиентов и инструментов JACK установите
  671. `jack-example-tools
  672. <https://archlinux.org/packages/extra/x86_64/jack-example-tools/>`_.
  673. Для альтернативной поддержки ALSA MIDI в jack2 установите `a2jmidid.
  674. <https://archlinux.org/packages/community/x86_64/a2jmidid/>`_.
  675. Для поддержки dbus с jack2 установите `jack2-dbus
  676. <https://archlinux.org/packages/extra/x86_64/jack2-dbus/>`_
  677. (рекомендуется).
  678. .. index:: lowlatency, audio, alsa
  679. .. _alsa:
  680. -------------
  681. Простая ALSA
  682. -------------
  683. ALSA - это тот самый звук (условно, на самом деле это звуковая
  684. подсистема ядра), который идёт напрямую из ядра и является самым
  685. быстрым, так как не вынужден проходить множество программных прослоек
  686. и микширование. ::
  687. sudo pacman -S alsa-lib alsa-utils alsa-firmware alsa-card-profiles alsa-plugins
  688. Поэтому, если у вас нет потребности в микшировании каналов, записи
  689. аудио через микрофон, и вы не слушаете музыку через Bluetooth, то ALSA
  690. может вам подойти. Пакет *alsa-utils* также содержит консольный Микшер
  691. (настройка громкости), который вызывается командой alsamixer.
  692. .. index:: startup-acceleration, networkmanager, service,
  693. .. _startup-acceleration:
  694. ===========================
  695. Ускорение загрузки системы
  696. ===========================
  697. .. index:: startup-acceleration, hdd, lz4, mkinitcpio
  698. .. _speed-up-initramfs-unpack:
  699. -------------------------------
  700. Ускорение распаковки initramfs
  701. -------------------------------
  702. Как уже было сказано, initramfs - это начальное загрузочное окружение,
  703. которое идет в дополнение к образу ядра Linux и должно содержать в
  704. себе все необходимые ядру модули и утилиты для его правильной загрузки
  705. (прежде всего необходимые для монтирования корневого раздела). Для
  706. экономии места на загрузочном разделе данное окружение поставляется в
  707. виде саморасжимаемого архива, который распаковывается на лету во время
  708. загрузки системы. В Arch Linux программа для генерации initramfs -
  709. mkinitcpio, по умолчанию сжимает их при помощи алгоритма zstd, который
  710. имеет оптимальные показатели скорости сжатия и расжатия. При этом
  711. понятно, что скорость сжатия initramfs не так важна, как скорость
  712. расжатия - ведь она напрямую влияет на скорость загрузки системы.
  713. Поэтому для ускорения данного процесса лучше всего использовать
  714. алгоритм с самой быстрой скоростью расжатия - ``lz4``.
  715. Чтобы использовать ``lz4`` в качестве основного алгоритма сжатия для
  716. initramfs, нам следует отредактировать конфигурационный файл
  717. ``/etc/mkinitcpio.conf`` и добавить в него следующие строчки:
  718. .. code-block:: shell
  719. :caption: ``/etc/mkinitcpio.conf``
  720. COMPRESSION="lz4"
  721. COMPRESSION_OPTIONS=(-9)
  722. Не забываем обновить все образы initramfs после проделанных
  723. изменений::
  724. sudo mkinitcpio -P
  725. .. index:: startup-acceleration, hdd, ssd, systemd, mkinitcpio
  726. .. _speed-up-systemd-startup:
  727. --------------------------------------------
  728. Ускорение загрузки системы c помощью systemd
  729. --------------------------------------------
  730. Есть ещё способ ускорить загрузку системы, используя систему
  731. инициализации systemd, указав её использование на самом раннем этапе
  732. загрузки ядра внутри initramfs окружения. Для этого нужно убрать
  733. ``base`` и ``udev`` из массива ``HOOKS`` в файле
  734. ``/etc/mkinitcpio.conf``, и заменить их на ``systemd`` чтобы он
  735. выглядел примерно так:
  736. .. code-block:: shell
  737. :caption: sudo nano /etc/mkinitcpio.conf
  738. HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)
  739. .. warning:: Для систем с зашифрованным корневым разделом к
  740. представленному перечню хуков вам также следует добавить
  741. ``sd-encrypt`` через пробел сразу после хука ``sd-vconsole``.
  742. Это немного увеличит образ initramfs, но заметно может ускорить запуск
  743. системы на пару секунд.
  744. Не забываем обновить все образы initramfs после проделанных
  745. изменений::
  746. sudo mkinitcpio -P
  747. .. index:: sqlite3, cache, vacuum
  748. .. _sqlite_cache_optimizing:
  749. ==============================
  750. Оптимизация баз данных SQLite
  751. ==============================
  752. Базы данных типа SQLite часто используется для локального хранения с целью
  753. кэширования тех или иных данных. Например, Firefox использует SQLite базу
  754. внутри текущего профиля для хранения всех пиктограм ранее посещаемых сайтов.
  755. Базы такого типа поддаются оптимизации занимаемого места на диске через
  756. специальную операцию ``VACUUM``.
  757. Для профаликтики диска и экономии места вы можете захотеть периодически
  758. выполнять данную операцию над всеми базами данных в вашей домашней директории
  759. при помощи следующей команды::
  760. find ~/ -type f -regextype posix-egrep -regex '.*\.(db|sqlite)' \
  761. -exec bash -c '[ "$(file -b --mime-type {})" = "application/vnd.sqlite3" ] && sqlite3 {} "VACUUM; REINDEX;"' \; 2>/dev/null
  762. .. warning:: Перед запуском данной команды рекомендуется закрыть все
  763. приложения, так как операция ``VACUUM`` не может быть выполнена для открытых
  764. и используемых в данный момент баз данных.
  765. Данную команду рекомендуется периодически выполнять вручную или при помощи
  766. systemd-таймера по аналогии с очисткой кэша pacman как было показано выше.
  767. .. index:: mesa, amd
  768. .. _mesa_tweaks:
  769. ======================
  770. Твики драйверов Mesa
  771. ======================
  772. .. index:: amd, sam, bar
  773. .. _force_amd_sam:
  774. --------------------------------------------------------------------------
  775. Форсирование использования AMD SAM *(Только для опытных пользователей)*.
  776. --------------------------------------------------------------------------
  777. AMD Smart Acess Memory (или Resizble Bar) — это технология которая
  778. позволяет процессору получить доступ сразу ко всей видеопамяти GPU, а
  779. не по блокам в 256 мегабайт, что приводит к задержкам ввода/вывода при
  780. обмене между CPU и GPU. Несмотря на то, что данная технология заявлена
  781. только для оборудования AMD и требует новейших комплектующих для
  782. обеспечения своей работы, получить её работу можно и на гораздо более
  783. старом оборудовании, например таком как AIT Radeon HD 7700.
  784. .. warning:: Для включения данной технологии в настройках вашего BIOS
  785. (UEFI) должна быть включена опция *"Re-Size BAR Support"* и *"Above
  786. 4G Decoding"*. Если таких параметров в вашем BIOS (UEFI) нет -
  787. скорее всего технология не поддерживается вашей материнской платой
  788. и не стоит даже пытаться её включить.
  789. К сожалению, после недавнего обновления драйверов Mesa, поддержка SAM
  790. была удалена из драйвера OpenGL - radeonsi, но вы по прежнему можете
  791. заставить Mesa использовать SAM при работе в приложениях использующих
  792. Vulkan.
  793. Чтобы активировать SAM в Linux, нужно добавить переменные окружения:
  794. .. code-block:: shell
  795. :caption: ``sudo nano /etc/environment``
  796. RADV_PERFTEST=sam # Только для Vulkan
  797. .. warning:: Учтите, что в некоторых играх с vkd3d вам может
  798. понадобиться также экспортировать переменную
  799. ``VKD3D_CONFIG=no_upload_hvv`` для избежания регрессий
  800. производительности при использовании вместе с SAM.
  801. https://www.reddit.com/r/linux_gaming/comments/119hwmt/this_setting_may_help_vkd3d_games_that_have/
  802. .. index:: amd, tweaks
  803. .. _bug_solution_for_vega:
  804. -------------------------------------------------------------------
  805. Решение проблем работы графики Vega 11 (Спасибо @Vochatrak-az-ezm)
  806. -------------------------------------------------------------------
  807. На оборудовании со встроенным видеоядром Vega 11 может встретиться баг
  808. драйвера, при котором возникают случайные зависания графики. Проблема
  809. наиболее актуальна для *Ryzen 2XXXG* и чуть реже встречается на Ryzen
  810. серии *3XXXG*, но потенциально имеет место быть и на более новых
  811. видеоядрах Vega.
  812. Решается через добавление следующих параметров ядра:
  813. .. code-block:: shell
  814. :caption: ``sudo nano /etc/modprobe.d/90-amdgpu.conf``
  815. options amdgpu gttsize=8192 lockup_timeout=1000 gpu_recovery=1 noretry=0 ppfeaturemask=0xfffd3fff deep_color=1
  816. На всякий случай можно дописать ещё одну переменную окружения:
  817. .. code-block:: shell
  818. :caption: ``sudo nano /etc/enviroment``
  819. AMD_DEBUG=nodcc
  820. Для подробностей можете ознакомиться со следующими темами:
  821. https://www.linux.org.ru/forum/linux-hardware/16312119
  822. https://www.linux.org.ru/forum/desktop/16257286
  823. .. index:: intel, amd, mesa, tweaks
  824. .. _multithreaded_opengl:
  825. --------------------------------
  826. Многопоточная OpenGL обработка
  827. --------------------------------
  828. У Mesa есть свой аналог переменной окружения
  829. ``__GL_THREADED_OPTIMIZATIONS=1``, так же предназначенный для
  830. активирования многопоточной обработки OpenGL - ``mesa_glthread=true``.
  831. В ряде игр и приложений это даёт сильное увеличение
  832. производительности, но в некоторых либо нет прироста, либо вовсе не
  833. может быть применено.
  834. Чтобы включить его для всей системы нужно либо прописать переменную
  835. окружения в файл ``/etc/environment``, либо используя adriconf_,
  836. включив параметр во вкладке *"Performance"* -> *"Enable offloading GL
  837. driver work to a separate thread"*
  838. .. _adriconf: https://archlinux.org/packages/community/x86_64/adriconf/