Базовое ускорение системы

Настройка makepkg.conf

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

sudo nano /etc/makepkg.conf # Редактируем

Изменить ваши значения на эти::

CFLAGS="-march=native -mtune=native -O3 -pipe -fno-plt -fexceptions \
      -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
      -fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
RUSTFLAGS="-C opt-level=3"
MAKEFLAGS="-j$(nproc) -l$(nproc)"
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)

Данные флаги компилятора выжимают максимум производительности при компиляции, но могут вызывать ошибки сборки в очень редких приложениях. Если такое случится, то измените O3 на O2 (Где O - ЭТО не ноль/нуль). И отключите параметр ‘lto’ в строке options добавив перед ним символ восклицательного знака ! ("!lto").

Установка полезных служб и демонов

1. Zramswap — это специальный демон, который сжимает оперативную память ресурсами центрального процессора и создает в ней файл подкачки. Очень ускоряет систему вне зависимости от количества памяти, однако добавляет нагрузку на процессор, т.к. его ресурсами и происходит сжатие памяти. Поэтому, на слабых компьютерах с малым количеством ОЗУ, это может негативно повлиять на производительность в играх.:

git clone https://aur.archlinux.org/zramswap.git  # Скачивание исходников.
cd zramswap                                       # Переход в zramswap.
makepkg -sric                                     # Сборка и установка.
sudo systemctl enable --now zramswap.service      # Включаем службу.

1.1 Nohang — это демон повышающий производительность путём обработки и слежки за потреблением памяти.:

git clone https://aur.archlinux.org/nohang-git.git # Скачивание исходников.
cd nohang-git                                      # Переход в nohang-git
makepkg -sric                                      # Сборка и установка.
sudo systemctl enable --now nohang-desktop         # Включаем службу.

1.2 Ananicy — это демон распределяющий приоритет задач, его установка очень сильно повышает отклик системы.:

git clone https://aur.archlinux.org/ananicy.git # Скачивание исходников.
cd ananicy                                      # Переход в ananicy.
makepkg -sric                                   # Сборка и установка.
sudo systemctl enable --now ananicy             # Включаем службу.

1.3 Включаем TRIM — очень полезно для SSD.:

sudo systemctl enable fstrim.timer    # Включаем службу.
sudo fstrim -v /                      # Ручной метод.
sudo fstrim -va /                     # Если первый метод не тримит весь диск.

1.4 Сron — это демон, поможет вам очищать нашу систему от мусора автономно.:

sudo pacman -S cronie                         # Установить cron.
sudo systemctl enable --now cronie.service    # Запускает и включает службу.
sudo EDITOR=nano crontab -e                   # Редактируем параметр.

И прописываем:

15 10 * * sun /sbin/pacman -Scc

Таким образом наша система будет чистить свой кэш раз в неделю, в воскресенье в 15:10.

1.5 haveged - это демон, что следит на энтропией системы. Необходим для ускорения запуска системы при высоких показателях в: systemd-analyze blame (Больше 1 секунды).:

sudo pacman -S haveged        # Установка
sudo systemctl enable haveged # Включает и запускает службу.

1.5.1 rng-tools - демон, что также следит на энтропией системы, но в отличии от haveged уже через аппаратный таймер. Необходим для ускорения запуска системы при высоких показателях systemd-analyze blame (Больше 1 секунды). (Не использовать вместе с Ananicy).:

sudo pacman -S rng-tools         # Установка
sudo systemctl enable --now rngd # Включает и запускает службу.

1.6 dbus-broker - Это реализация шины сообщений в соответствии со спецификацией D-Bus. Его цель - обеспечить высокую производительность и надежность при сохранении совместимости с эталонной реализацией D-Bus.:

sudo pacman -S dbus-broker                      # Уставновка
sudo systemctl enable --now dbus-broker.service # Включает и запускает службу.

Сверхнизкие задержки звука

Установите следующие пакеты для понижения задержек звука в PulseAudio::

sudo pacman -S jack2 pulseaudio-alsa pulseaudio-jack pavucontrol jack2-dbus realtime-privileges

Внимание

Пакет realtime-privileges https://archlinux.org/packages/community/any/realtime-privileges/ - лучше не устанавливать, он может вызвать небольшие задержки всей системы, но без него звук хуже.

Новая альтернатива PulseAudio

PipeWire - это новая альтернатива PulseAudio, которая призвана избавить от проблем pulse, уменьшить задержки звука и потребление памяти. Пакет alsa-utils также содержит консольный Микшер (настройка громкости), который вызывается командой alsamixer.:

sudo pacman -S jack2 pipewire pipewire-jack pipewire-alsa pavucontrol pipewire-pulse alsa-utils

Ускорение загрузки системы (Отключение NetworkManager-wait-online)

В большинстве случаев для настройки интернет подключения вы, скорее всего, будете использовать NetworkManager, т.к. он является в этом деле швейцарским ножом и поставляется по умолчанию. Однако, если вы пропишите команду systemd-analyze blame, то узнаете, что он задерживает загрузку системы примерно на ~4 секунды. Чтобы это исправить выполните::

sudo systemctl mask NetworkManager-wait-online.service

Ускорение загрузки ядра на HDD накопителях (Только для жестких дисков)

Убедитесь, что пакет lz4 установлен::

sudo pacman -S lz4

Отредактируйте файл::

sudo nano /etc/mkinitcpio.conf

Теперь выполните следующие действия:

  • Добавьте lz4 lz4_compress в массив MODULES (ограничен скобками)

  • Раскомментируйте или добавьте строку с надписью COMPRESSION="lz4"

  • Добавьте строку если её нет - COMPRESSION_OPTIONS="-9"

  • Добавите shutdown в массив HOOKS (ограничен скобками)

Это ускорит загрузку системы на слабых жёстких дисках благодаря более подходящему методу сжатия образов ядра.

Ускорение загрузки пакетов в pacman

Начиная с шестой версии pacman поддерживает параллельную загрузку пакетов. Чтобы её включить отредактируйте /etc/pacman.conf:

sudo nano /etc/pacman.conf # Раскомментируйте строчку ниже

ParallelDownloads = 4 # Где 4 - количество пакетов для одновременной загрузки

Альтернативно можно использовать powerpill (Спасибо Zee Captain)

git clone https://aur.archlinux.org/powerpill.git
cd powerpill
makepkg -sric

После установки выполните обновление баз данных::

sudo powerpill -Syu