Как долго ваша система Linux загружается?

Когда вы загружаете свою систему, она проходит через последовательность событий перед тем, как представить вам экран входа в систему. Вы когда-нибудь проверяли, сколько времени требуется для загрузки вашей системы? Как правило, все это происходит за секунды или несколько минут, но мы не знаем точное время. Иногда по каким-либо причинам вам может потребоваться узнать точное время, необходимое вашей системе для загрузки. Независимо от причины, по которой вы хотите это знать, существует служебная программа systemd-analysis, которая может сообщить вам точное время, необходимое вашей системе Linux для загрузки.

Хотя вы можете использовать часы или секундомер, чтобы отслеживать это время, когда ваша система начинает загружаться, но это возможно не для каждой ситуации, особенно для запущенных серверов, которые вы вряд ли можете перезагрузить. Например, если у вас есть сервер, на котором запущены критически важные службы, и вам необходимо определить время, необходимое вашей системе для загрузки. В этом случае вам необходимо перезагрузить сервер, что не может быть возможным каждый раз.

В этой статье вы узнаете, сколько времени требуется вашей системе Linux для загрузки и как уменьшить это время, если она загружается медленно.

Примечание :

  • Процедура, описанная в этой статье, была протестирована на Ubuntu 20.04 LTS. Эту же процедуру можно выполнить в любом дистрибутиве Linux с включенным systemd.
  • Чтобы открыть Терминал командной строки, используйте сочетание клавиш Ctrl + Alt + T.

Что такое systemd-analysis?

Systemd-analysis - это инструмент, который можно использовать для получения статистики последней загрузки системы. С помощью инструмента systemd-analysis вы можете найти информацию о том, сколько времени потребовалось для загрузки системы, а также сколько времени потребовалось для запуска каждого модуля. К счастью, вам не нужно устанавливать этот инструмент, так как это встроенный инструмент systemd. Вы можете проверить это, используя следующую команду в Терминале:

$ which systems-analyze

В выводе будет отображаться полный путь к исполняемой команде.

Определение времени, затрачиваемого системой на загрузку

Чтобы узнать время, необходимое системе для загрузки, просто введите system-analysis без аргументов командной строки в Терминале:

$ systemd-analyze

Когда вы выполните указанное выше , инструмент systemd-analysis вычисляет время, затрачиваемое системой до завершения загрузки, с разбивкой на ядро ​​и пользовательское пространство.

Как видно на скриншоте выше, общее время загрузки нашей системы составляет 32,378 с. секунд и разбивается на:

  • Ядро: 6.074s
  • Userspace: 26.304s

Исследование / устранение неполадок медленной загрузки

Если время загрузки больше, вам нужно найти, какая служба замедляет процесс загрузки. Вы можете найти его с помощью команды systemd-analysis blame . Эта команда перечисляет все запущенные службы, запущенные во время загрузки, с указанием времени, которое они потребовали. С помощью этой информации вы можете оптимизировать время загрузки системы.

Выполните следующую команду в Терминале, чтобы определить, какая служба виновата в медленном процессе загрузки:

$ sudo systemd-analyze blame

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

Список виноватых может быть довольно длинным, обычно первых 10 записей достаточно, чтобы найти службы, требующие много времени. Поэтому передайте вывод вышеуказанной команды по конвейеру команде «head» следующим образом:

$ sudo systemd-analyze blame | head

Вы также можете распечатать вывод в виде дерева критической по времени цепочки событий. Для этого введите в Терминале следующую команду:

$ systemd-analyze critical-chain

В выводе вы увидите цепочку событий, отсортированных по времени (когда служба стала активной) в порядке убывания. Значение после символа «@» в каждом событии - это время, когда служба стала активной. В то время как значение после символа «+» в каждом блоке показывает время, которое потребовалось для запуска службы.

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

Чтобы отключить любую службу, используйте следующий синтаксис:

$ sudo systemctl disable service-name

Вот и все! В этой статье вы узнали, как использовать встроенный инструмент systemd, чтобы узнать время, необходимое вашей системе для загрузки. Если загрузка занимает больше времени, вы также можете найти те службы, которые за это отвечают, и отключить их, чтобы ускорить загрузку. Однако обратите внимание, что некоторые службы по умолчанию должны запускаться при загрузке, поэтому не рекомендуется отключать какие-либо службы, не зная, что они на самом деле делают, иначе у вас могут возникнуть проблемы.

Комментарии