Обзор
systemd-analyze помогает системным администраторам диагностировать и решать проблемы с производительностью, выявляя узкие места в процессе загрузки системы и измеряя время, которое каждая служба вносит в загрузку.
Основные функции
- Измерение общего времени загрузки
- Анализ времени запуска отдельных служб и юнитов
- Идентификация «критической цепочки» — юнитов, наиболее сильно влияющих на загрузку
- Визуализация процесса загрузки (графики SVG, DOT)
- Проверка файлов юнитов systemd на корректность
Основные опции
Основные опции, используемые с командой systemd-analyze.
Анализ времени загрузки
Визуализация и отладка
Сгенерированная команда:
Комбинируйте команды.
Описание:
`systemd-analyze` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Различные примеры использования команды systemd-analyze.
Проверка общего времени загрузки
systemd-analyze
Проверяет общее время загрузки системы.
Проверка времени загрузки по службам
systemd-analyze blame
Отображает время, затраченное каждой службой на загрузку, отсортированное по убыванию.
Анализ критической цепочки загрузки
systemd-analyze critical-chain
Проверяет цепочку зависимостей юнитов, которые наиболее сильно влияют на завершение загрузки.
Визуализация времени загрузки (SVG)
systemd-analyze plot > boot.svg
Создает график процесса загрузки в формате SVG и сохраняет его в файл 'boot.svg'. Этот файл можно открыть в веб-браузере.
Проверка файла юнита
systemd-analyze verify /etc/systemd/system/my-custom.service
Проверяет указанный файл юнита systemd на наличие синтаксических ошибок или некорректных настроек.
Советы и примечания
Полезные советы и моменты, на которые стоит обратить внимание при использовании systemd-analyze.
Установка Graphviz
Для создания визуализированных графиков с помощью опций plot или dot необходимо установить пакет Graphviz.
- Debian/Ubuntu: sudo apt install graphviz
- CentOS/RHEL: sudo yum install graphviz
Интерпретация результатов blame
Результаты systemd-analyze blame показывают «время, затраченное на запуск» каждого юнита, но поскольку systemd запускает многие службы параллельно, нельзя просто утверждать, что служба с самым долгим временем является причиной задержки загрузки. Для более точного анализа следует использовать его совместно с critical-chain.
Оптимизация загрузки
Путем устранения ненужных зависимостей или изменения типа запуска службы (например, on-demand) для юнитов, идентифицированных с помощью critical-chain, можно сократить время загрузки.