Ускорьте загрузку Linux, отключив ненужные службы

Все больше и больше операционных систем раздуваются множеством служб, работающих в фоновом режиме. Хотя он может не использовать много процессорного времени, он увеличивает время загрузки и использование ОЗУ.

Некоторые дистрибутивы Linux включают «все, кроме кухонной раковины», чтобы облегчить жизнь пользователя. Благодаря этому такие вещи, как совместное использование файлов или печать, работают прямо из коробки. К сожалению, единственный способ сделать это - включить сотни утилит, чтобы каждый нашел то, что ему нужно.

Ускорьте загрузку Linux, отключив ненужные службы - Linux

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

Анализируйте время, необходимое для загрузки каждой службы

Большинство операционных систем на базе Linux перешли на Systemd. Среди набора утилит, которые они включают, есть программа, позволяющая анализировать скорость работы системы. В частности, он показывает общее время, необходимое для загрузки, и время, необходимое для загрузки каждой службы. Обратите внимание, что некоторые службы загружаются параллельно. Следовательно, если для загрузки необходимы две секунды, а остальные три секунды, это не обязательно означает, что всего требуется пять секунд. Может быть, намного меньше.

Откройте эмулятор терминала и введите эту команду:

systemd-analyze

Ускорьте загрузку Linux, отключив ненужные службы - Linux

Это показывает, сколько времени требуется ядру Linux и службам платформы для загрузки, что означает, что не объясняет, сколько времени требуется графическому интерфейсу для загрузки. Чтобы объяснить это по-другому, здесь показано количество времени, необходимое с момента загрузки ядра до его сброса на консоль Linux, которая выглядит так, как показано ниже.

Ускорьте загрузку Linux, отключив ненужные службы - Linux

Если у вас не установлен графический интерфейс, он будет отображаться на экране.

Однако вы также можете увидеть необходимое время через графический интерфейс инициализации с помощью этой команды:

systemd-analyze critical-chain graphical.target

Ускорьте загрузку Linux, отключив ненужные службы - Linux

Это показывает, что графический интерфейс был загружен за 2.126 секунды. Это не учитывает время, необходимое для загрузки утилит рабочего стола. Чтобы включить / отключить их, запустите диспетчер запуска среды рабочего стола.

Наконец, возможно, наиболее полезными для целей этого руководства являются:

systemd-analyze blame

Ускорьте загрузку Linux, отключив ненужные службы - Linux

Вы можете перемещаться по меню, используя клавиши со стрелками или же СТРАНИЦА ВВЕРХ و ЛИСТАТЬ ВНИЗ. Нажмите q из.

Используйте systemctl для отключения Ненужные услуги

Как вы можете видеть на предыдущем изображении, для загрузки службы snapd требуется 1.295 секунды. На SSD это незначительно. Но на жестком диске такое время может составлять порядка нескольких секунд, и в конечном итоге они будут очень значительными. Кроме того, на SSD многие вещи загружаются параллельно с невероятной эффективностью. На HDD очень сложно загружать сервисы параллельно. Считывающие головки, плавающие на пластинах диска, должны перемещаться из одного сектора в другой, поэтому параллельное чтение данных невозможно.

Чтобы упростить это, представьте себе следующее: если на вашем твердотельном накопителе вы видите пять сервисов, для которых требуется один раз для запуска, общее время, необходимое для загрузки всех этих сервисов, вероятно, будет меньше 1.2 секунды. Если на жестком диске вы просматриваете те же пять сервисов за одну секунду, общее время загрузки, вероятно, превышает пять секунд.

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

sudo systemctl disable snapd.service

Но, если вы перезапустите, вы заметите, что оснастки Демон все еще работает. Это потому, что другие зависимости могут включить его, даже если он отключен. Попробуйте посмотреть, что это может быть:

systemd-analyze blame | grep snap
Ускорьте загрузку Linux, отключив ненужные службы - Linux

snapd.seed.service و сокет Они здесь виноваты. Дочерняя служба может запускать собственную родительскую службу. Когда вы отключаете один из них, вы просто говорите ему, чтобы он не запускался автоматически сам по себе. Но есть мощный способ обойти эту проблему.

использовать systemctl Чтобы скрыть сервис

sudo systemctl mask snapd.service

Это в основном делает служебный файл нуль Чтобы приложения не нашли способ запустить службу.

В большинстве случаев отключить услугу несложно. Этот пример был выбран, чтобы показать вам, как справляться с более сложными сценариями. В этом случае его необходимо отключить. snapd.seed.service و сокет или также скрыть это.

Ниже показано улучшенное время загрузки.

Ускорьте загрузку Linux, отключив ненужные службы - Linux

Заключение

Начиная с 4.078, время выполнения было уменьшено до 3.452 секунды, что на ~ 15% меньше. Неплохо, учитывая только одну услугу, и это на SSD. На жестком диске легче получить более значимые результаты.

В этом конкретном примере больше сервисов можно отключить с помощью такой команды, как:

sudo systemctl mask avahi-daemon.service ModemManager.service thermd.service pppd-dns.service.

Если вы предпочитаете графическое приложение для управления вашими услугами, вы можете взглянуть на Системный менеджер проекта. Однако он будет ограничен в том, что вы можете с ним делать, поскольку командная строка предлагает большую гибкость.

Источник
Перейти к верхней кнопке