Как находить медленные юниты, диагностировать зависшие цепочки и исправлять задержки
1️⃣ Кто тормозит: анализ времени запуска.
systemd-analyze blame показывает, какие юниты стартуют дольше всех, базовый шаг в поиске проблем.
systemd-analyze blame
2️⃣ Поиск узкого места: критическая цепочка зависимостей. Если юнит стартует быстро, но висит в конце загрузки, то он блокирует чей-то старт или ждет зависимость. Нужно увидеть цепочку задержек:
systemd-analyze critical-chain
3️⃣ Устраняем задержку через override. Правильный способ настроить юнит - это не менять оригинальный файл, а создать override:
sudo systemctl edit docker.service
В открывшийся файл:
[Unit]
After=network.target
Wants=network.target
Применяем изменения:
sudo systemctl daemon-reload
sudo systemctl restart docker
Корректируем цепочку зависимостей, чтобы Docker не ждал медленных сетевых юнитов.
BashTex 📱 #bash #utils