Добавить в корзинуПозвонить
Найти в Дзене
Компьютер Пошагово

Что такое «оптимизация Linux» и зачем она нужна

Оптимизация — это набор действий, направленных на достижение конкретной цели: быстрее загрузка, меньшая задержка (latency), большая пропускная способность (throughput), экономия энергии, меньший расход диска/SSD или стабильность сервера под высокой нагрузкой. Подходы зависят от назначения системы (десктоп/игры, рабочая станция, сервер, встраиваемое устройство). Ниже — структурированный план с практическими шагами, командами и примерами. Сначала — «быстрые победы», затем — углублённые настройки. Fedora Arch: Проанализируйте время загрузки: Отключите автозапуск лишних GUI‑программ (для десктопа) — Settings → Startup Applications или через ~/.config/autostart. Или через sysfs: IO scheduler: Установить через udev rule или kernel cmdline: Установки буферов: Создайте файл /etc/sysctl.d/99-performance.conf: Применить: Внимание: изменяйте осознанно, комментируйте и проверяйте влияние. Всегда делайте резервную копию конфигураций. Управление Turbo Boost (Intel): можно отключить в sysfs Таймауты
Оглавление

Оптимизация — это набор действий, направленных на достижение конкретной цели: быстрее загрузка, меньшая задержка (latency), большая пропускная способность (throughput), экономия энергии, меньший расход диска/SSD или стабильность сервера под высокой нагрузкой. Подходы зависят от назначения системы (десктоп/игры, рабочая станция, сервер, встраиваемое устройство).

Ниже — структурированный план с практическими шагами, командами и примерами. Сначала — «быстрые победы», затем — углублённые настройки.

Быстрые «винты» (быстро и заметно)

  1. Обновите систему и ядро:
  2. Debian/Ubuntu:
  3. bash

Fedora

-2

Arch:

-3
  • Обновите микрокод CPU и драйверы (firmware):Установите пакет intel/amd microcode и linux-firmware.
  • Отключите ненужные службы (systemd)
-4

Проанализируйте время загрузки:

-5

Отключите автозапуск лишних GUI‑программ (для десктопа) — Settings → Startup Applications или через ~/.config/autostart.

Мониторинг и диагностика (обязательно перед правками)

  • Просмотр загрузки CPU/ памяти/IO/сети:top / htop
    iotop (I/O)
    atop, glances
    vmstat 1
    sar (sysstat)
  • Проверка дисков:smartctl (smartmontools)
    lsblk, blkid, df -h
  • Проверка журналов
-6

Десктоп (игры/работа) — рекомендации

  1. Включить режим производительности:Установите governor на performance (временный):
-7

Или через sysfs:

-8
  1. Отключить ненужные эффекты/анимации в окружении рабочего стола.
  2. GPU: установить официальный драйвер (NVIDIA/AMD) и пакет управления; включить Vulkan/Proton, если нужно.
  3. Игровая подсистема: включить GameMode (Feral) или gamemode/ bwrap/steam оптимизации.
  4. Turn on GPU and CPU performance for games via nvidia-smi/AMD settings.
  5. Отключите swap или настройте swappiness (см. блок «Память»).

Сервер (throughput/latency) — рекомендации

  1. Отключить графический интерфейс (если не нужен).
  2. Маскировать и отключать ненужные сервисы (systemd).
  3. Настроить cgroups / systemd resource limits для контейнеров.
  4. Установить и настроить tuned / profile=throughput-performance (RHEL/Fedora/Ubuntu-at-scale).
-9
  1. Настроить мониторинг (Prometheus, Grafana, collectd, netdata).

Настройки памяти и swap

  1. Swappiness — снижает склонность к использованию swap (по умолчанию 60)
-10
  1. ZRAM / zswap — полезно на системах с малой оперативной памятью:Установите systemd-zram-generator (Arch/Ubuntu PPA / пакет) или zram-tools.
    Пример: sudo apt install zram-tools (дальше конфигурация /etc/default/zramswap).
  2. Если много RAM (>32 ГБ) — можно уменьшить или отключить swap, но внимайте к OOM.

Диск/файловая система / SSD

  1. Mount options:Для SSD: используйте noatime или relatime (noatime снижает лишние записи):
    В /etc/fstab:
-11
  • Внимание: discard делает непрерывный TRIM и может влиять на производительность; лучше сочетать noatime + периодический fstrim.
  • TRIM (регулярно):
-12

IO scheduler:

  • Для NVMe/SSD: рекомендовано none или mq-deadline/kyber. Посмотреть:
-13

Установить через udev rule или kernel cmdline:

-14
  1. Filesystem: ext4/XFS/Btrfs/ZNVMe/HBM — выбирайте исходя из сценария; ext4 и XFS стабильно и быстро для общего использования.

Сеть — базовые оптимизации

  1. Включить BBR (если kernel >= 4.9 и нужно улучшить TCP):
-15

Установки буферов:

-16
  1. Для высоконагруженных серверов — настройка NIC offloads, IRQ affinity, multiqueue и tuning через ethtool.

Kernel и параметры (sysctl) — примеры

Создайте файл /etc/sysctl.d/99-performance.conf:

-17

Применить:

-18

Внимание: изменяйте осознанно, комментируйте и проверяйте влияние. Всегда делайте резервную копию конфигураций.

CPU: governor, affinity, Turbo/Boost

  1. Governor:Для низкой задержки/игр — performance или schedutil для современных ядер:
-19

Управление Turbo Boost (Intel): можно отключить в sysfs

-20
  • Опять же — осторожно (терм/энергия).
  • CPU affinity / taskset — привязка задач к ядрам для реального времени:

-21

systemd: оптимизация загрузки / сервисов

  1. Отключение/маскирование ненужных сервисов:
-22

Таймауты: сократите DefaultTimeoutStartSec в /etc/systemd/system.conf если нужен более быстрый boot (но осторожно).

  • Анализ
-23

Логирование (journald)

  1. Ограничьте размер журнала journald (чтобы не перегружать диск):
    В /etc/systemd/journald.conf:
-24

Затем:

-25

Профилирование и поиск узких мест

  • perf / flamegraphs / bpftrace — для глубокого анализа CPU/IO.
  • iostat / vmstat / iotop / atop — для выявления узких мест.
  • strace/ltrace — для анализа проблем с приложением.

Скрипт «базовой оптимизации» (пример для Debian/Ubuntu десктопа)

-26

Запустите с sudo и проверьте перед применением.

Риски и рекомендации

  • Всегда делайте резервную копию конфигураций перед изменением (/etc/*).
  • Меняйте одно за раз и тестируйте — фиксируйте изменения (git для /etc полезен).
  • Не применяйте «все подряд» советы из интернета — некоторые параметры полезны для одних задач и вредят другим.
  • Для продакшн‑систем сначала тестируйте на staging.

Полезные ссылки и ресурсы