На сервере все ок: железо норм, диски норм, но после ребута он думает о смысле жизни секунд 40. Обычно лезешь сразу в сервисы, логи и смотришь что запустилось, а что еще нет. Но иногда юнит не падает, а просто висит в starting и ждёт сеть, DNS, диск или маунт.
Что делает systemd-analyze
systemd-analyze вскрывает сколько заняло ядро, сколько занял userspace, и какие юниты съели время.
Кто тормозит
systemd-analyze blame
Она покажет список юнитов, отсортированный по времени старта. Важно: это не всегда время выполнения, а то, сколько юнит считался стартующим. Но обычно виновники видны сразу.
Дерево зависимостей
Когда юнит тормозит, часто причина не в нём, а в том, что он ждёт сеть, диск, другой сервис.
systemd-analyze critical-chain
Эта штука показывает цепочку, что блокировало путь до default.target. Видно кто кого ждал и где пробка.
График загрузки для красивого разбора
Если хочется визуально показать коллеге почему оно долго стартует, есть SVG-таймлайн.
systemd-analyze plot > boot.svg
Открываешь boot.svg в браузере и видишь полосочки, кто и когда стартовал.
Вывод
systemd-analyze это твой способ увидеть кто, где и почему тормозит загрузку и кто кого ожидает.
