Linux

Ускоряем загрузку Linux: анализ systemd и оптимизация

Узнайте, как измерить и сократить время загрузки Linux с помощью встроенного инструмента systemd-analyze и отключить лишние службы.

Обновлено 27 апреля 2026 г.
10-15 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 22.04+Debian 11+Fedora 36+systemd 249+

Введение / Зачем это нужно

Загрузка системы — первое впечатление от работы с устройством. Если Linux стартует медленно, это раздражает и снижает продуктивность. С помощью встроенного инструмента systemd-analyze вы можете измерить каждую стадию загрузки, найти «узкие места» и целенаправленно их устранить. По завершении этого гайда вы сможете сократить время старта системы на десятки процентов, не прибегая к экспериментальным патчам.

Требования / Подготовка

  • Система с systemd (Ubuntu 22.04+, Debian 11+, Fedora 36+ и другие).
  • Права sudo или root для управления службами.
  • Установленный пакет systemd (предустановлен по умолчанию в большинстве дистрибутивов).

Пошаговая инструкция

Шаг 1: Запустите базовый анализ загрузки

Узнайте общее время загрузки и выявите самые медленные службы.

# Общее время загрузки
systemd-analyze

# Список служб по времени инициализации (от большего к меньшему)
systemd-analyze blame

Первая команда выведет суммарное время ядра и пространства пользователя. Вторая — отсортированный список служб, где каждая строка показывает время запуска. Сфокусируйтесь на записях с наибольшими значениями.

Шаг 2: Просмотрите визуальный график загрузки

Наглядно проанализируйте цепочки запуска и точки ожидания.

# Сохраните график в формате SVG
systemd-analyze plot > boot-plot.svg

Откройте boot-plot.svg в браузере. График покажет, какие службы стартуют параллельно, а какие — последовательно. Ищите длинные блоки и «простаивающие» цепочки — они часто указывают на зависимости или ожидания ресурсов.

Шаг 3: Отключите ненужные службы и сокеты

Уберите из автозагрузки то, что не требуется для работы системы.

# Пример: отключить службу
sudo systemctl disable имя-службы.service

# Пример: отключить сокет (если служба не требуется)
sudo systemctl disable имя-службы.socket

Не отключайте критичные службы: systemd-udevd, systemd-journald, сетевые цели (если вы используете сеть сразу после загрузки). Избегайте отключения служб шифрования и монтирования, если они нужны для корневой файловой системы.

Шаг 4: Настройте параллельность и таймауты

Ускорьте запуск за счёт более агрессивной параллельности и сокращения таймаутов.

Откройте файл /etc/systemd/system.conf и раскомментируйте или добавьте параметры:

# Включить параллельный запуск по умолчанию
DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s

После изменений выполните:

sudo systemctl daemon-reload

Это заставит systemd применить новые лимиты и ускорит пропуск «зависших» служб при старте.

Шаг 5: Проверьте улучшения после перезагрузки

Убедитесь, что изменения дали ожидаемый эффект.

# Перезагрузите систему
sudo reboot

# После входа сравните метрики
systemd-analyze
systemd-analyze blame

Сравните новые значения с исходными. Если время загрузки сократилось, вы зафиксировали результат. При необходимости повторите шаги для оставшихся «узких мест».

Проверка результата

  • Общее время загрузки должно сократиться хотя бы на 10–30% в зависимости от количества отключенных служб.
  • В выводе systemd-analyze blame не должно остаться длинных цепочек от неиспользуемых сервисов.
  • График в boot-plot.svg станет компактнее, с меньшим числом последовательных блоков.

Возможные проблемы

  • Служба не отключается через disable — возможно, она включена через override или симлинк в /etc/systemd/system/. Проверьте systemctl status имя-службы и удалите лишние ссылки вручную.
  • После отключения что-то перестало работать — включите службу обратно через systemctl enable имя-службы и протестируйте перезагрузку.
  • График пустой или неполный — убедитесь, что загрузка завершена и у вас есть права на чтение журнала systemd. При необходимости перезагрузитесь и повторите анализ.

Часто задаваемые вопросы

Безопасно ли отключать службы через systemctl disable?
Почему systemd-analyze blame показывает больше времени, чем реальная загрузка?
Можно ли ускорить загрузку без отключения служб?
Что делать, если график systemd-analyze plot выглядит пустым или неполным?

Полезное

Запустите полный анализ загрузки
Просмотрите визуальный график загрузки
Отключите ненужные службы и сокеты
Настройте параллельность и таймауты
Проверьте улучшения после перезагрузки

Эта статья помогла вам решить проблему?