Оптимизация производительности Linux

c

Миф о «легковесности»: почему ваш дистрибутив тормозит на самом деле

Многие уверены: если установить «легкий» дистрибутив вроде Xubuntu или Lubuntu, система полетит. На практике ключевой фактор тормозов — не окружение рабочего стола, а алгоритмы планировщика ввода-вывода. На SSD стандартный CFQ (Completely Fair Queuing) создает излишние задержки. Экспертная замена на none или mq-deadline через udev-правила срезает до 30% лагов при открытии приложений. Проверьте: cat /sys/block/sdX/queue/scheduler. Если там не none — вот ваш первый неочевидный апгрейд.

Ложная безопасность «чистой» системы: скрытый жор ресурсов

Распространенное заблуждение — установка минимального пакета ПО якобы решает вопрос нагрузки. Но многие забывают про systemd-юниты, висящие в состоянии activating из-за неправильных зависимостей. Они не падают в аварию, но постоянно тянут D-Bus. Специалисты всегда проверяют очередь заданий: systemctl list-jobs. Если видите зависшие таймеры, удалите их через systemctl reset-failed. Дополнительный совет: отключите systemd-resolved, если не используете его — он активно фрагментирует кэш DNS в ядре, замедляя сетевые запросы на 200-400 мс.

Тонкий нюанс с файловой системой: ext4 не всегда чемпион

Миф: ext4 «летает» на всех конфигурациях. Для серверов с высокой нагрузкой записи — да. Но на рабочей станции с множеством мелких файлов (браузерные кэши, кэш пакетного менеджера) метаданные ext4 становятся узким местом. Профессиональная хитрость: при монтировании укажите noatime,nodiratime — это убивает одни из самых частых запросов на запись метаданных. Для еще более «тонкой» настройки используйте journal_async_commit. Это снижает нагрузку на процессор при записи в журнал, особенно на бюджетных NVMe с DRAM-кэшем.

Проблема с драйверами: секрет разгона не только в картинке

Типичная ошибка — установка проприетарного драйвера ради FPS в играх, игнорируя режим управления энергопотреблением. Даже на NVIDIA с актуальным драйвером часто включен auto режим для графического ядра. Экспертное решение: принудительно задайте nvidia-smi -pm 1 и пропишите в Xorg Option "HardDPMS" "false". Это устраняет микролаги при выходе системы из простоя. Для AMD уточните использование amdgpu.ppfeaturemask — без него карта висит на пониженных частотах шины, создавая иллюзию пропадания пакетов при вводе с клавиатуры.

Оперативная память: малоизвестная граница ошибок в ядре

Часто советуют увеличивать vm.swappiness или ставить его на ноль. Опасность: при swappiness=0 ядро начинает убивать процессы (OOM Killer) раньше, чем сбрасывает кеш на диск. Настоящий профессиональный секрет — настройка vm.vfs_cache_pressure. Если вы постоянно наблюдаете микрофризы при работе с большим количеством вкладок браузера, выставите значение 50. Это заставит ядро дольше хранить кэш директорий и файловых дескрипторов, не давая процессам WebKit/Blink «закрывать» свои хендлы. Также проверьте vm.dirty_ratio и vm.dirty_background_ratio. Для SSD типичные 20 и 10% лучше заменить на 5 и 2%, иначе фоновые флеш-операции блокируют интерфейс ввода.

Планировщик задач: дискретные сбои из-за preempt

Основное заблуждение — включение fully preemptible kernel (PREEMPT_RT) «просто для отзывчивости». Это убивает пропускную способность сети и диска на 40-60%. Для реальных случаев тормозов лучше сконфигурировать cpuset из набора cgroups. Разместите критичные по отзывчивости процессы (плеер, терминал) на 0 и 1 ядрах, а фоновые компиляции и загрузку — на 4-7. Забытый инструмент — taskset в связке с chrt. Установите chrt -f 5 для драйвера звука — это предотвращает треск и выпадение аудиобуферов, что классическая оптимизация игнорирует.

Диагностика узких мест: что не показывают стандартные мониторы

Top, htop, iotop — полезны, но не видят кэш-дельта. Эксперты применяют perf top и bcc/softirqs. Часто гигантское потребление CPU (si в top) — это прерывания сетевых карт. Ошибка: пытаться снижать IRQ маской. Правильный совет: включите rps (Receive Packet Steering) для всех очередей через sysfs. Это распределяет обработку прерываний по разным ядрам, устраняя микродиагностические «затыки» при загрузке страниц. Так же полезен smp_affinity для специальных сетевых очередей — конфигурируется через /proc/irq.

Добавлено: 25.04.2026