TGViewer
LinuxSkill - Сводки с прода и Шпаргалки LinuxSkill - Сводки с прода и Шпаргалки @linuxskill · 10.7K subscribers
Post #927 4.24K
💡 Systemd обещает быструю загрузку, но твоя система тормозит?

Привет, цифровой архитектор! 👋

Классика: сам демон работает быстро, но вынужден ждать ленивые юниты, которые создают "критическую цепочку" задержек. Покажу, как быстро найти виновника и устранить проблему с помощью двух команд.

1. 🔍 Кто виноват: Анализ времени запуска

Команда systemd-analyze blame покажет точное время, которое каждый юнит потратил на запуск, сортируя их по убыванию.


# Выводит список юнитов, отсортированный по времени запуска
systemd-analyze blame

Назначение: Быстрый поиск юнитов, которые стартуют медленнее всего.

2. ⛓️ Поиск узкого места: Критическая цепочка

Если юнит стартует быстро, но при этом висит в топе, значит, он кого-то ждет. Нам нужно увидеть цепочку зависимостей, которая создает задержку.


# Анализ цепочки зависимостей, которая замедляет запуск системы
systemd-analyze critical-chain

Назначение: Показывает, какой именно юнит или зависимость блокирует загрузку критических служб.

Частый пример: docker.service ждет поднятия сети (systemd-networkd-wait-online.service). Это бессмысленно, если у Docker нет жесткой зависимости от сети на старте.

3. 🛠️ Устраняем задержку через override

Чтобы «отвязать» Docker от медленной сети, используем правильный подход systemd — не трогаем оригинальный файл юнита, а создаем прокладку override.conf:


# Открыть редактор для создания override.conf
sudo systemctl edit docker.service

# В открывшийся файл вставьте:
[Unit]
After=network.target
Wants=network.target

Назначение: Переопределяем параметры After и Wants, чтобы Docker не ждал некритичные сетевые службы.

После этого не забудьте применить изменения:


# Применить изменения
sudo systemctl daemon-reload
sudo systemctl restart docker


Важно: Использование systemctl edit создает отдельный файл, который не будет перезаписан при обновлении пакета Docker.

💡 Вывод: Регулярное использование systemd-analyze позволяет держать под контролем стартовую производительность сервера и избегать фантомный задержек, которые съедают рабочее время.

#Linux #systemd #CLI #DevOps #Optimization
  • 👍 15
  • 🔥 1
More from @linuxskill
  1. Oct 7, 2026Post #1243
  2. Oct 6, 2026GitOps-практики: развёртываем сервис через ArgoCD Классический CI/CD запускает деплой. Но…
  3. Oct 5, 2026Post #1241
  4. Oct 2, 2026📊 Диск тормозит, а iostat показывает норму? Ищем хвост задержек Приложение подвисает на з…
  5. Sep 30, 2026💀 CPU под 100%, а в top пусто? Ловим невидимые процессы через eBPF Сервер греется, в шапк…
  6. Sep 28, 2026🔥 Знаешь только ip a? 10 неочевидных команд ip для Linux Большинство админов знают про ip…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →