[ Пред. ] [ Содержание ] [ След. ]

blame

[ @console @systemd ]

 


Это сразу не нужно, но позже будет очень полезно.


Можно проверить, быстро ли загружается система:


systemd-analyze


Пример ответа:


Startup finished in 4.056s (kernel) + 18.995s (userspace) = 23.052s
graphical.target reached after 18.984s in userspace


На всякий случай — в одной секунде тысяча милисекунд.


Эти цифры надо воспринимать очень спокойно, потому что даже если система будет загружаться за три секунды, поднятие GUI и всех сопуствующих процессов может занимать и полторы минуты. Или больше.


Узнать, что именно загружается


при включении ноута, и если что-то не очень нужно, то — убить или подавить.


Простым списком


systemd-analyze blame


Пример ответа:


8.362s NetworkManager-wait-online.service
4.061s apt-daily.service
2.198s ifupdown-pre.service
886ms nvidia-persistenced.service
764ms udisks2.service
743ms smartmontools.service
586ms lightdm.service
583ms plymouth-quit-wait.service


Наглядной цепочкой


systemd-analyze critical-chain graphical.target


Пример ответа:


graphical.target @11.665s
└─multi-user.target @11.665s
  └─exim4.service @11.478s +187ms
    └─network-online.target @11.476s
      └─NetworkManager-wait-online.service @3.112s +8.362s
        └─NetworkManager.service @3.005s +105ms

В графике


systemd-analyze plot > fileAnalyze.svg && gimp fileAnalyze.svg


Увеличить и на, смотри последовательно, что после чего загружаеццо…


Отключить что-то


Очень осторожно! В погоне за секундой можно запороть систему.


«systemd-timesyncd.service» точно не надо отключать.


В принципе безопасно отключить штатный «NetworkManager-wait-online.service» (ещё может называться «systemd-networkd-wait-online.service»), у меня это высвободит восемь секунд. Этот сервис «ждёт», когда ноут подключится к сети, и только ПОСЛЕ этого запускает остальные сервисы. Это логично, ведь зачем их запускать, если им будет нужен доступ в сеть?! Но на это можно забить.


sudo systemctl status systemd-networkd-wait-online.service
sudo systemctl stop systemd-networkd-wait-online.service
sudo systemctl disable systemd-networkd-wait-online.service
sudo systemctl mask systemd-networkd-wait-online.service


Последняя команда делает сервису symlink в [[/dev/null.]> Это нужно из-за того, что если стартап какого-то сервиса погашен, но его «попросит» другой сервис/процесс, то сервис всё равно будет загружен.


Ещё можно по аналогичной схеме «прибить» сервис bluetooth.service — если он, конечно же, не нужен и не будет нужен позже. Возможно, будет разумнее отключить его в
Параметры системы
> Запуск и завершение
> Управление службами


sudo systemctl status bluetooth.service
sudo systemctl stop bluetooth.service
sudo systemctl disable bluetooth.service
sudo systemctl mask bluetooth.service


Забить snap


Это будет посложнее. Вместо «sudo systemctl disable snapd.service» надо проверить, есть ли у него родственники: «systemd-analyze blame | grep snap» (если проверяем snap). Если таки да, то лучше сервис дополнительно ещё и замаскировать:


sudo systemctl stop snapd.service
sudo systemctl disable snapd.service
sudo systemctl mask snapd.service