2.9.6.3.3 Systemd-analyze - анализ системных процессов
Скачать документSystemd-analyze — утилита, которая используется для просмотра отчетов о производительности системы. С помощью systemd-analyze можно получить информацию о том, сколько времени потребовалось для загрузки системы, а также сколько времени потребовалось для запуска каждого модуля.
Для просмотра информации о количестве времени, которое затрачивается при загрузке системы с разбивкой на ядро и пользовательское пространство, необходимо выполнить следующую команду:
systemd-analyze
Startup finished in 1.557s (kernel) + 4.996s (initrd) + 45.794s (userspace) = 52.348s graphical.target reached after 45.780s in userspace
Также можно просмотреть подробную информацию о затраченном времени каждым блоком (процессом) в отдельности, для этого используется следующая команда:
systemd-analyze blame
25.298s plymouth-quit-wait.service 17.432s dnf-makecache.service 15.769s accounts-daemon.service 13.800s udisks2.service 9.440s postfix.service 5.744s vmware.service 5.604s initrd-switch-root.service 4.708s NetworkManager-wait-online.service 4.668s systemd-udev-settle.service 3.925s avahi-daemon.service 3.546s lvm2-monitor.service 3.343s lm_sensors.service 3.108s smartd.service 2.957s usbsrvd.service 2.721s sshd.service 2.216s ModemManager.service 2.212s NetworkManager.service 2.143s chronyd.service 1.830s systemd-homed.service 1.826s sysstat.service 1.814s systemd-logind.service 1.789s upower.service 1.596s rtkit-daemon.service ...
С помощью полученной информации можно оптимизировать время загрузки системы. Список отсортирован по затраченному времени в порядке убывания.
Так как список процессов может быть довольно большим, существует возможность отсортировать вывод при помощи команды head (обычно первых 10 записей достаточно, чтобы найти требующие большого количества времени службы):
systemd-analyze blame | head
Также можно просмотреть подробную информацию в виде дерева критической по времени цепочки событий. Для этого необходимо выполнить команду:
systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character. The time the unit took to start is printed after the "+" character.
graphical.target @45.780s └─multi-user.target @45.780s └─plymouth-quit-wait.service @20.481s +25.298s └─systemd-user-sessions.service @20.211s +156ms └─remote-fs.target @20.176s └─remote-fs-pre.target @20.176s └─nfs-client.target @16.448s └─gssproxy.service @15.158s +1.266s └─network.target @15.140s └─wpa_supplicant.service @42.982s +143ms └─basic.target @11.186s └─dbus-broker.service @10.563s +618ms └─dbus.socket @10.556s └─sysinit.target @10.548s └─systemd-userdbd.service @31.778s +78ms └─systemd-userdbd.socket @4.150s └─system.slice └─-.slice
В выводе можно увидеть цепочку событий, отсортированных по времени (когда служба стала активной) в порядке убывания.
Значение после символа «@» в каждом событии - это время, когда служба стала активной.
Значение после символа «+» в каждом блоке показывает время, которое потребовалось для запуска службы.
Из полученной выше информации можно установить, какие службы запускаются дольше и, в свою очередь, вызывают медленную загрузку системы.
Такие службы можно отключить, если они не требуются для запуска при загрузке. Кроме того, можно отключить все службы, которые занимают меньше времени, но не требуются при загрузке, поскольку они также влияют на время загрузки системы.
Для того чтобы отключить какую-либо службу, необходимо выполнить следующую команду:
systemctl disable <имя_службы>
Systemd-analyze также позволяет получить и другие данные о состоянии и трассировке системы. Для ознакомления с дополнительной информацией о работе с утилитой и ее возможностях просмотрите справку:
man systemd-analyze
Дата последнего изменения: 06.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.