Главная >> Инструкции >> Ускорение загрузки Linux

Ускорение загрузки Linux

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

Но порой система инициализации выполняет много лишних задач во время загрузки, иногда некоторые сервисы ожидают загрузки других и завершаются только по таймауту через некоторое время. В таких случаях система может загружаться до нескольких минут. В этой статье мы рассмотрим как ускорить загрузку Linux, что нужно для этого настроить, что удалить. А также немного поговорим о процессе загрузки. Мы сосредоточимся на системе инициализации systemd.


Содержание статьи

Как проходит загрузка Linux

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

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

Но самое интересное начинается дальше. Перед тем как начать загрузку системы ядро выполняет несколько проверок, загружает модули и так далее. Не все проверки нужно выполнять и не все модули нам нужны.

После того как ядро передало управление системе инициализации, начинается монтирование дисков. Это тоже отнимает время, лучше не использовать виртуальные разделы дисков, например, raid или lvm, да и вообще, чем меньше разделов - тем лучше. Идеальный вариант - только корневой раздел, тогда скорость загрузки linux будет максимальной. Но это очень невыгодный в плане удобства вариант, поэтому найдите золотую серединку. Перед тем как примонтировать каждый диск, система инициализации пытается проверить файловую систему на ошибки, это тоже замедляет загрузку.

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

Анализ загрузки Systemd

Анализ скорости загрузки системы важен не только в самом процессе оптимизации, но и для того, чтобы оценить насколько эта оптимизация удалась. Перед и после оптимизации нужно замерять время загрузки, чтобы понять чего мы смогли добиться.

Давайте посмотрим насколько быстро грузится наша система сейчас:

systemd-analyze

systemd

Да, здесь 17 секунд, не так уж плохо, но будет еще лучше после завершения ускорения загрузки. На загрузку ядра уходит 5.405, а на все остальные сервисы 11.611. Чтобы понять какие именно сервисы замедляют систему нам нужна более подробная информация, мы можем ее получить с помощью параметра blame:

systemd-analyze blame

systemd1

У нас есть список сервисов, которые загружаются дольше всего, но этот список ни о чем нам не говорит, потому что в Systemd параллельная загрузка сервисов. Если бы во время загрузки была какая-нибудь проблема, мы бы ее увидели, но проблем здесь нет. Нам нужен более детализованный график с указанием не только времени загрузки сервиса, но и с отображением параллельных загрузок и мы можем его получить командой:

systemd-analyze plot > graph.svf

Утилита сгенерирует svf файл с графиком, откройте его в браузере:

systemd2

Вот теперь у нас есть вся информация, чтобы оптимизировать систему. Здесь отображается не только время загрузки каждого сервиса, но также время когда он начал загружаться и когда завершил. Дальше начнем ускорение загрузки Linux.

Ускорение загрузки Linux

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

Настраивать Grub будем правильно. Параметры загрузки ядра находятся в файле /etc/default/grub, а именно в строчке GRUB_CMDLINE_LINUX_DEFAULT. Откройте этот файл:

vi /etc/default/grub

Теперь приводим интересующую нас строчку к такому состоянию:

GRUB_CMDLINE_LINUX_DEFAULT="quiet rootfstype=ext4  libahci.ignore_sss=1 raid=noautodetect selinux=0 plymouth.enable=0 lpj=12053560"

Разберем подробнее за что отвечает каждый параметр:

  • quiet - вывод, это долго, поэтому говорим ядру что на экран нужно выводить минимум информации
  • rootfstype=ext4 - указываем в какую файловую систему отформатирован корень. У меня ext4.
  • libahci.ignore_sss=1 - Ignore staggered spinup flag, ускоряет загрузку жестких дисков
  • raid=noautodetect - raid я не использую, думаю вы тоже поэтому отключаем.
  • selinux=0 - система полномочий selinux на домашней машине тоже ни к чему, без нее будет быстрее.
  • plymouth.enable=0 - заставка plymouth тоже занимает много времени, поэтому убираем заставку
  • lpj=12053560 - позволяет задать константу loops_per_jiffy, что позволит ядру не вычислять ее каждый раз и сэкономит до 250 миллисекунд. Это значение индивидуально для каждого компьютера.

Чтобы узнать значение последнего параметра выполните:

dmesg | grep 'lpj='

systemd3

Нас будет интересовать значение lpj=, укажите его в своем конфигурационном файле.

Также для указания корневого раздела желательно не использовать всякие там UUID, быстрее будет если написать прямо. Для того чтобы конфигуратор grub не использовал grub добавьте в тот же файл строчку:

GRUB_DISABLE_LINUX_UUID=true

Сохраните файл и обновим конфигурацию grub:

sudo update-grub

Проверяем, действительно ли установлены нужные опции:

vi /boot/grub/grub.cfg

systemd5

Да, все правильно, перезагружаем компьютер, и смотрим что вышло:

systemd-analyze

systemd4

Почти на одну секунду быстрее, и то хорошо. Возможно, у вас эффект будет намного лучше. Теперь идем разбираться с сервисами.

Настройка системы

Во-первых SELinux отключен не полностью. Для полного отключения добавляем строку в файл /etc/selinux/config:

sudo vi /etc/selinux/config

SELINUX=disabled

Во-вторых, проверка файловых систем тоже может занять некоторое время. Оставляем проверку на ошибки только для корня. Для этого откройте файл /etc/fstab и приведите строчку для корня к такому виду:

vi /etc/fstab

/dev/sda3 / ext4 defaults 1 1

Последний параметр отвечает за проверку, 1 - проверять, 0 - не проверять. Установите для всех других разделов 0. К тому же boot раздел лучше монтировать по требованию. Для этого изменяем его запись:

/dev/sda1 /boot ext4 noauto,comment=systemd.automount 1 0

Затем давайте перенесем папку /tmp в оперативную память, чтобы уменьшить количество операций на жестком диске:

tmpfs /tmp tmpfs defaults 0 0

Ускорение загрузки Linux отключением сервисов

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

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

sudo systemctl disable rsyslog
$ sudo systemctl mask rsyslog

Опция mask позволяет спрятать юнит, система будет думать что его не существует и не сможет загрузить. Восстановить такой юнит можно командой systemctl unmask.

В systemd реализована своя служба настройки сети - networkd, поэтому необязательно использовать NetworkManager. Работа со встроенной службой будет намного быстрее. Здесь нужно заметить, что если вы используете wifi и не хотите настраивать его вручную, через консоль, то отключать NetworkManager не стоит.

Отключаем NetworkManager и включаем networkd:

sudo systemctl disable NetworkManager
sudo systemctl enable systemd-networkd

Службу networking тоже можно отключить, если не используете:

sudo systemctl disable networking

Включаем resolved, который отвечает за настройку DNS серверов:

sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved

Даем символическую ссылку на файл /etc/resolv.conf

sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Осталось настроить динамическое получение ip адреса при загрузке:

sudo vi /etc/systemd/network/20-dhcp.network

[Match]
Name=enp*
[Network]
DHCP=yes

enp0* значит, что сеть нужно подымать только для устройств, имена которых начинаются на enp0. Готово, сеть настроена.

В systemd есть свое решение для выполнения задач по расписанию, поэтому cron можно не использовать:

sudo systemctl disable cron

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

sudo systemctl disable ufw
$ sudo systemctl mask ufw

Отключаем apport (служба отчетов об ошибках):

sudo systemctl disable apport

Я не использую ppp и мобильные соединения, поэтому и эти сервисы можно отключить.

sudo systemctl disable pppd-dns
sudo systemctl mask pppd-dns

sudo systemctl disable ModemManager
sudo systemctl mask ModemManager

Если вы не используете Avahi, его тоже можно отключить:

sudo systemctl disable avahi-daemon

Систему AppArmor тоже можно отключить:

sudo systemctl disable apparmor

Также если у вас загружаются такие программы, как postfix (почтовый сервер), apache (веб-сервер), mysql (сервер баз данных) лучше их тоже убрать из автозагрузки и запускать потом вручную.

Перезагружаемся и проверяем скорость загрузки:

systemd7

У меня скорость загрузки linux выросла на пять секунд. Но это нормально, учитывая, что используется VirtualBox, на реальной машине можно получить и больше. А самая лучшая оптимизация - купить SSD, там можно достичь даже скорости загрузки до двух-трех секунд.

Выводы

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

Оцените статью

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (24 оценок, среднее: 4,88 из 5)
Загрузка...

99 комментариев к “Ускорение загрузки Linux”

  1. никогда не замечал, что моя убунту долго загружается, наоборот, она просто летает. всегда. статья для виндузятников, скорее всего. вы заголовком и статьёй не ошиблись?

    Ответить
      • win грузится от силы 25 секунд , я хочу работать на люникс ,но люникс минт 18 грузится минут пять и выключается , как старая XP , МИНУТ10 , ну я всего лишь неделю тестирую её , может ещё и ускорю(пока не до этого) , дальше я запустил 4 браузера и стала система тормозить , для простого сведения : у win минимум 18 процессов одновременно у меня тянет) да ubuntu быстра , но когда я переходил на неё , были проблемы с модемами 3 G, поэтому после недели сносил их , теперь всё таки перешёл (YOTA появилась ) но опять проблемы , она больше не запускается на винде (я понимаю разные способы установки ,но это решаемо, правда часа три на форумах обеспеченно),P.S.:десять лет горю желанием перейти на люникс(нравиться возможности консоли), но опять эти пароли достают , я лицензионки винды 10 даже выкидываю не задумываясь(их суют с компом, ноутом и т.д.,только пиратские , (упрекнуть в бесплатности не получится)шваль , в числе доктора web и касперского выкидываю на хрен (самая бесполезная вещь )хотя по порно лазю лет 20 минимум и ловил,как и вжизни всего

        Ответить
    • Боо, да это же интересно. Я даже и не знал, что сустемд такое умеет. График вообще бомба - наглядность 100%! В винде чтобы такое проделать нужно кучу софта поставить, и то будет много сложнее. В начиная с 8-ки вообще колову сломать можно)

      Лично у меня грузится до рабочего! состояния в среднем минутку, может чуть больше. С помощью отключения сервисов удалось снизить с 37 с до 26 с. Да, на целой минуте это будет незаметно, но я столько информации узнал из статьи! И это главное.

      Спасибо автору за очень интересный и полезный блог! Интересно вот, а есть ли аналогичный функционал у /sbin/init ? А то что я не гуглил (правда пока не очень усердно) по поводу всяких systemctl status и т. п. в старом стартовом демоне такого не нашел.

      Ответить
  2. У меня avahi по ходу дела не отключается...плюс при переходе на встроенную сетевую систему systemd перестали работать индикаторы/виджеты сетевые. Может знает кто-нибудь работающие с Systemd для Ubuntu/Mint?

    Ответить
  3. я могу отключить лишь некоторые службы не влезая в конфигурации ядра и граб?
    Очень не хочется очередной раз положить систему. 50 секунд много а вот секунд 20 я подождать готов.
    Я хочу отключить следующие службы:
    23.987s apt-daily.service
    15.010s NetworkManager-wait-online.service
    9.279s ModemManager.service
    стоит ли их отключать? а так же посоветуйте что можно выключить из списка ниже

    Ответить
    • ModemManager - если не используете модем можно отключить, NetworkManager управляет сетью. Отключить нельзя но можно заменить на networkd. А так да, можете конфигурацию ядра не трогать.

      Ответить
  4. 7.893s dev-sda1.device 6.057s NetworkManager.service
    5.647s accounts-daemon.service 5.230s irqbalance.service
    5.027s snapd.refresh.service 4.796s thermald.service
    4.765s gpu-manager.service
    4.699s grub-common.service
    3.979s rsyslog.service
    3.964s networking.service
    3.941s systemd-logind.service
    3.851s pppd-dns.service
    3.808s alsa-restore.service

    Ответить
  5. Так как здесь в очередной раз задета тема Systemd, то не планируется ли материал, посвященный плюсам и минусам этой новой системы инициализации? Просто было бы интересно.

    Ответить
    • Этот сервис отвечает за автоматическое обновление системы, если вам не нужна эта функция, можете отключить. А учитывая что он занимает так много времени, то однозначно нужно отключать.

      Ответить
  6. Startup finished in 11.436s (firmware) + 2.517s (loader) + 1.623s (kernel) + 1.616s (initrd) + 44.236s (userspace) = 1min 1.430s
    Startup finished in 10.459s (firmware) + 1.903s (loader) + 1.884s (kernel) + 1.692s (initrd) + 40.785s (userspace) = 56.725s

    Ответить
  7. Минус -100 в карму автору.
    Только что попробывал "оптимизировать" на fedora 24. В результате Wi-fi пропал.
    Автор просьба всем свои эксперименты проводи на реальной машине а не на виртуалке. Это не одно и тоже! Потом Linux понятие растяжимое указывай distr на котором проводился эксперимент.
    Да не ожидал я от вас такого...

    Ответить
    • Wifi пропал, потому что отключен NetworkManager, забыл дописать что если используется wifi то лучше NetworkManager не трогать. Верните на место программу и все будет работать.

      Ответить
    • Ну есессна, без NM нужно wi-fi ручками настраивать. В интернете гайдов пруд пруди, уверен даже, что и на losst.pro есть =)
      А всё потому, что как макаки Ctrl-c Ctrl-v, не разбираетесь в сути. Нет бы гуглонуть, что такое этот NetworkManager, да узнать за что он в системе отвечает. Да и systemd-networkd почитать как настроить, перед тем как отрубать NM.
      Так нет, сразу какашками лезут кидаться. Автор что, нанялся вам тут всё разжевывать и в рот класть? Вы хоть как нибудь помогли проекту перед тем, как требовать от него что-то?
      Непонятно чего-то, не можешь нагуглить - стучись в комментарии, но не требуй, блина, а проси!
      Минус over9000 тебе в карму.

      Ответить
  8. Теперь бы еще статью по компиляции кастомного ядра. Сейчас юзаю Zen-kernel на Арче, но хотелось бы пересобрать под свое железо все.

    Ответить
  9. было
    Startup finished in 11.436s (firmware) + 2.517s (loader) + 1.623s (kernel) + 1.616s (initrd) + 44.236s (userspace) = 1min 1.430s
    стало
    Startup finished in 10.395s (firmware) + 2.405s (loader) + 1.878s (kernel) + 1.809s (initrd) + 15.837s (userspace) = 32.326s

    Ответить
      • Немного разобрался, основное время теряется при монтировании 4-х шар от NAS-а
        и есть еще пожиратель времени при загрузке - systemd-rfkill.service, пока не разобрался с чем его едя, и можно ли его исключить из загрузки.

        UPD.
        NetworkManager-wait-online.service у меня не отключен, а он отьедает 6.8 сек.

        Ответить
  10. Хотел отключить проверку фс при загрузке. Ввожу - vi /etc/fstab , но не получается на ноль переправить циферки. Не подскажете как?

    Ответить
    • sudo vi /etc/fstab, затем переместить курсор на цифру которую нужно заменить нажать r, ввести то на что нужно заменить, нажать ESC написать :wq нажать Enter. А вообще я через пару дней напишу статью про vim, чтобы новым пользователям было проще.

      Ответить
  11. @LinuxDoc:~$ systemd-analyze blame
    1min 43.452s networking.service
    8.225s dev-sda7.device
    7.965s ModemManager.service
    7.262s loadcpufreq.service
    6.749s accounts-daemon.service
    5.692s grub-common.service
    5.363s speech-dispatcher.service
    4.973s ondemand.service
    4.602s lightdm.service
    4.493s NetworkManager.service
    4.306s thermald.service
    3.988s systemd-user-sessions.service
    3.986s pppd-dns.service
    3.983s gpu-manager.service
    3.982s rsyslog.service
    3.942s avahi-daemon.service
    3.871s systemd-logind.service
    3.542s alsa-restore.service
    2.359s console-setup.service
    2.158s irqbalance.service
    2.113s systemd-udevd.service
    1.892s polkitd.service
    1.867s systemd-tmpfiles-setup.service
    1.741s NetworkManager-wait-online.service
    1.662s systemd-tmpfiles-setup-dev.service
    1.540s keyboard-setup.service
    1.361s systemd-modules-load.service
    1.226s systemd-journald.service
    1.069s cpufrequtils.service
    1.061s plymouth-start.service
    1.014s lm-sensors.service
    932ms resolvconf.service
    928ms binfmt-support.service
    745ms upower.service
    631ms systemd-random-seed.service
    620ms systemd-update-utmp.service
    520ms sys-kernel-debug.mount
    484ms systemd-remount-fs.service
    394ms systemd-journal-flush.service
    386ms dev-hugepages.mount
    385ms dev-mqueue.mount
    354ms udisks2.service
    352ms systemd-sysctl.service
    218ms systemd-timesyncd.service
    177ms dev-disk-byx2duuid-70c40122x2d116ex2d451ex2d9989x2dfa3da7625315.swap
    166ms kmod-static-nodes.service
    159ms proc-sys-fs-binfmt_misc.mount
    155ms snapd.socket

    почему networking.service так долго грузится? Что можно сделать ,чтобы он быстрей грузился? Инет раздает оптический Gpon модем.

    Подскажи Админ. Заранее благодарю за ответы.

    Ответить
  12. GRUB_DISABLE_LINUX_UUID=true
    Тут нужно понимать, что делаешь. В некоторых случаях при подключении флешки, HDD и других устройств grub может дать им имя sda, а значит системе нужно будет грузится не с раздела sdaX, а с того, на которое grub переименовал ваше устройство, например sdbX. А с включенной этой опцией загрузчик не заметит подмены и будет пытаться грузится с записанного в него места. Вот в таких случаях UUID решает проблему. Ведь его можно изменить либо намеренно, либо отформатировав раздел.

    Ответить
  13. Я вот установил Ubuntu Gnome и теперь мучаюсь из-за долгой загрузки, как мне показалось
    ESCOD
    15.120s grub-common.service
    13.176s preload.service
    12.329s ondemand.service
    12.246s irqbalance.service
    11.470s networking.service
    10.230s apport.service
    9.113s dev-sda1.device
    8.154s rc-local.service
    7.594s speech-dispatcher.service
    7.558s plymouth-quit-wait.service
    7.252s apparmor.service
    6.376s ModemManager.service
    5.246s accounts-daemon.service
    4.244s systemd-logind.service
    3.941s pppd-dns.service
    3.940s iio-sensor-proxy.service
    3.939s systemd-user-sessions.service
    3.469s bluetooth.service
    3.467s thermald.service
    3.374s gpu-manager.service
    3.245s systemd-tmpfiles-setup.service
    3.101s console-setup.service
    Достаточно долго грузит, причем даже после входа в профиль приложения запускаются достаточно долго. Тот же Google Chrome секунд 10-15. Можно ли что-то сделать с этим?

    Ответить
  14. Посмотрел коменты и не нашел подобной траблы:

    systemd-analyze
    Startup finished in 4.266s (kernel) + 1min 11.677s (userspace) = 1min 15.944s

    $ systemd-analyze blame:
    >>> 1min 18ms man-db.service

    Толкового в гугле тоже ничего не смог найти, может автор подскажет? =)

    Ответить
      • это Арч - обновляю систему ежедневно. И каждый день ман-дб так подолгу включается. Вот и думаю как бы решить этот вопрос

        Ответить
        • Помню-помню, решается простым отключением man-db, ничего не отвалилось, этот сервис возможно появляется после mariadb(сам не следил). И автор Losst исправьте комментарии, в поля нельзя попасть(фокус не применяется!!!, а только через 4-5 кликов).

          Ответить
  15. всем привет. можете сказать что есть что и что можно отключить?
    11.888s vmware.service
    11.579s dev-sda2.device
    8.687s NetworkManager-wait-online.service
    7.764s vmware-USBArbitrator.service
    7.358s irqbalance.service
    6.944s NetworkManager.service
    6.683s thermald.service
    6.581s apparmor.service
    5.473s ModemManager.service
    5.399s accounts-daemon.service
    5.288s networking.service
    5.121s plymouth-read-write.service
    5.028s gpu-manager.service
    4.108s rsyslog.service
    4.083s grub-common.service
    4.039s bluetooth.service
    3.532s iio-sensor-proxy.service
    3.495s plymouth-start.service
    3.385s systemd-logind.service
    2.203s apport.service
    2.169s systemd-udevd.service
    1.873s systemd-backlight@backlight:intel_backlight.service

    Ответить
  16. здравствуйте! я решил проверить скорость загрузки. время загрузки составляет systemd-analyze
    Startup finished in 8.299s (kernel) + 22.813s (userspace) = 31.113s. и посмотрел кто является виновником долгой загрузки и вот три виновника долгой загрузки
    14.803s dev-sda5.device
    12.007s systemd-modules-load.service
    11.393s systemd-udevd.service
    что эта за службы запускаются? и как их отключить? убунту 17.04

    Ответить
  17. Сделал по написанному. Все было неплохо до отключения Нетворк-менеджера. После этого вай-фай пропал(( я в печали(

    Ответить
  18. У меня с NetworkManager странная вещь. При его замене на system-networkd и после перезагрузки отключается автоматический вход под моим профилем. В настройках и в конфиге при этом автовход включён. Стоит только произвести обратную замену на NetworkManager - и автовход снова появляется... Что это может быть?

    Ответить
  19. Граждане, может кто увидит незамыленным глазом, что ещё можно потушить? (NM - будет заглушен, заменён на systemd-networkd)
    Автору статьи - гранд мерси за "systemd-analyze plot" - не знал про такую возможность!
    ~]$ systemd-analyze
    Startup finished in 429ms (kernel) + 1.907s (initrd) + 2.825s (userspace) = 5.161s
    ~]$ systemd-analyze blame
    1.448s lvm2-pvscan@9:126.service
    1.354s lvm2-pvscan@8:66.service
    1.100s lvm2-pvscan@9:127.service
    708ms network.service
    395ms lvm2-monitor.service
    230ms dev-mapper-vg_hp\x2d\x2dboy\x2droot.device
    125ms tuned.service
    48ms NetworkManager.service
    41ms systemd-vconsole-setup.service
    34ms systemd-udev-trigger.service
    28ms systemd-udevd.service
    26ms systemd-tmpfiles-setup-dev.service
    25ms systemd-tmpfiles-setup.service
    24ms systemd-readahead-replay.service
    23ms rhel-readonly.service
    23ms systemd-logind.service
    22ms systemd-tmpfiles-clean.service
    20ms polkit.service
    20ms systemd-journald.service
    18ms microcode.service
    18ms sysstat.service
    17ms rhel-import-state.service
    15ms sys-kernel-debug.mount
    15ms sshd.service
    14ms dev-hugepages.mount
    13ms rhel-dmesg.service
    12ms auditd.service
    12ms systemd-fsck-root.service
    10ms dev-mqueue.mount
    10ms systemd-journal-flush.service
    9ms dev-mapper-vg_hp\x2d\x2dboy\x2dswap.swap
    9ms kmod-static-nodes.service
    8ms systemd-random-seed.service
    8ms vm.mount
    7ms rsyslog.service
    6ms systemd-sysctl.service
    5ms systemd-user-sessions.service
    4ms systemd-update-utmp-runlevel.service
    4ms systemd-remount-fs.service
    4ms systemd-readahead-done.service
    3ms systemd-update-utmp.service
    3ms tmp.mount
    2ms systemd-readahead-collect.service
    1ms sys-kernel-config.mount

    Ответить
  20. Ребят, у меня одного после всего этого система начала дольше грузиться?
    Всего на 2 секунды...
    и самое интересное, что ядро грузится на 2 секунды быстрее systemd грузится стал быстрее на 1 секунду... а все остальное стало грузиться медленнее.

    Ответить
  21. Спасибо за статью, искал полчаса в чем проблема у меня, вроде ssd, а грузилось 50 сек. А тут все в одном месте расписано. В моем случае NetworkManager был основной проблемой.
    Startup finished in 3.166s (kernel) + 3.064s (userspace) = 6.230s

    Ответить
  22. Само название статьи лично у меня, сидящего на линуксе 2 года вызвало улыбку, ну куда уже ускорять, если по сравнению с виндой любая линуксовская операционка ( у меня сейчас стоит Linux mint ) просто летает. Я и мелкой её поставил на ноут ( ребенок с 6 лет на линуксе )))

    Ответить
    • 🙂 Летает, а загружается с какой скоростью? Последняя винда, которую я ставил знакомому на новый комп загружалась за 6 секунд с момента нажатия кнопки power до появления рабочего стола. Не hibernate, а именно полноценная холодная загрузка. Windows 10, 16gb ram, core i5, sata ssd.
      У меня же, линукс, грузится "Startup finished in 12.056s (firmware) + 4.059s (loader) + 3.269s (kernel) + 16.769s (userspace) = 36.154s".
      Конфиг такой же, за одним исключением. Системный диск у меня - Samsung 960 EVO, это который nvme pci-e ssd, и который на чтение выдает 3200mb/sec в отличие от обычного sata ssd с 550mb/sec.

      Ответить
      • Да, 6 секунд - это с учетом того, что на винде - помимо всех драйверов стоял уже Kaspersky Free. Т.е. это загрузка винды 10 с касперским, за 6 секунд с момента нажатия кнопки на корпусе.

        Ответить
      • Во-первых: не 3200mb/sec, а 3200MB/sec, т.е. 3200миллибит/сек, против 3200МегаБайт/сек - чуете разницу?
        Во-вторых: а толку от ваших 3200MB/sec, если диск воткнут в PCI-e x1? Максимальная пропускная способность PCI-e x1 v.2.0 = 500 MB/sec, а PCI-e x1 v.3.0 = 984.6MB/sec, вычтите отсюда ещё и накладные расходы протокола передачи данных, но, даже, если не вычитать - ваш Samsung 960 EVO nvme pci-e ssd не выдаст больше, чем позволяет интерфейс материнской платы, т.е больше 984.6MB/sec не достичь и я очень сильно сомневаюсь, что в мат. плате вашего компа есть свободный PCI-e x4 v.3.0 или PCI-e x2 v.4.0 (а уж тем более PCI-e x1 v.5.0, который должен появиться в 2019 году), необходимый для данного SSD....не, можно, конечно, видяху выдернуть и воткнуть на её место Samsung 960 EVO nvme pci-e ssd - тогда ускорение будет, ну полное 😉

        Ответить
    • тоже придурок , обьясняю любая ,но у меня вин 10 , грузится 25 сек , а люникс минт -5 минут и выключается минуты 3 , а может и больше (XPтакого не вытворяла лет 15 назад) кстати противник вин 7 , для меня она устаревшая и медлительная, почему и хочу ubuntu or lynix

      Ответить
  23. Автор,

    Проблема такая
    31.800s NetworkManager-wait-online.service

    пробую отключить через
    sudo systemctl NetworkManager-wait-online.service
    в ответ получаю
    Unknown operation NetworkManager-wait-online.service.

    Ответить
  24. После отключения NM исчез индикатор сети из панели. Есть ли подобный для networkd? Сеть работает отлично!

    Ответить
  25. Статья классная, однако в моем случае такие манипуляции ни к чему не привели, так как проблема в жестком диске. Решил вернуть plymouth назад, чтоб красивее было. Удаление соответствующей команды из грубконфига и замена 0 на 1 ни к чему не привели. Подскажите, как вернуть plymouth. Update-grub делать не забывал.

    Ответить
  26. подскажите плиз-в линуксе новичёк, на компе 2 системы Дебиан и линукс Минт.Корни на ssd .Основная Дебиан грузится 2-3секунды - минт загружается 1.5 минуты.что-то можно сделать для более быстрой загрузки линукс минт?

    Ответить
    • Убрать Cinnamon...например - Mint Mate...а если серьёзно - Mint LMDE 3 ставьте и смотрите скорость загрузки 🙂 у меня на SATA2 SSD (старенький бук с двухгодовалым SSD) - 18.039 секунд + 10 секунд ожидания GRUB на выбор ОС (ставил 3 секунды, потом 5-ть...вернул на штатные 10 сек) и я подумываю, как бы замедлить загрузку, а то чай налить не успеваю....дурная привычка: сначала вкл. нажать, а потом пойти чай налить...

      Ответить
  27. Изначально мой Debian 9 (без X) грузился за 4.268 секунды (kernel+userspace).
    При этом из них 1 секунда уходила на VBoxAdd.service
    После "первой части" советов (GRUB) стало грузиться за 3.125 сек.
    После "второй части" советов (systemd) стало грузиться 3.856 сек.
    Из "поедателей" времени увеличились:
    887ms systemd-resolved.service
    305ms system-modules-load.service
    В итоге откатился назад до 3.125 сек.
    Что я сделал не так? 🙂

    Ответить
    • >После "второй части" советов<
      Наверное убрали опцию discard в /etc/fstab, столь необходимую для SSD вашего ПК....
      У меня так (только не надо полностью себе копировать - не загрузится) fstab выглядит:
      # UNCONFIGURED FSTAB FOR BASE SYSTEM
      proc /proc proc defaults 0 0
      # /dev/sda3
      UUID=068a534a-d6ca-47bd-be5d-d3860af31f0d / ext4 rw,discard,errors=remount-ro,noatime,nodiratime,commit=60 0 1
      # /dev/sda5
      UUID=3324632c-fa33-4198-97f6-9775e2bf8c70 swap swap sw,discard 0 0
      # /dev/sda6
      UUID=ee2d7832-53f3-4b18-9555-29984c02a17e /home ext4 rw,discard,errors=remount-ro,noatime,nodiratime,commit=60 0 0
      # tmpfs
      tmpfs /tmp tmpfs rw,auto,nosuid,nodev,noatime,nodiratime,mode=0777,size=25% 0 0
      tmpfs /run tmpfs rw,auto,nosuid,nodev,noatime,nodiratime,size=25% 0 0
      tmpfs /var/log tmpfs rw,auto,noexec,nosuid,nodev,noatime,nodiratime,size=100000000 0 0
      tmpfs /var/tmp tmpfs rw,auto,nosuid,nodev,noatime,nodiratime,mode=0777,size=25% 0 0
      Естесственно ручками писал скрипт, а он мне автоматом теперь все fstab-ы редактирует 🙂 на всех Линукс-ПК, причём сам определяет - SSD или HDD, или оба, или много. Ручками я только процентаж в tmpfs дописывал, а может тоже скриптом, уж не помню....вот скрипт , писал два года назад, а юзал последний раз полгода назад, может что уже и поменялось в линуксах, так что на свой страх и риск: https://drive.google.com/file/d/0B5yYOZjNEYKmR1JJWE9pVENMX0U/view

      Ответить
  28. И да, раз уж коснулся этой темы, по ускорению работы с жёстким диском - планировщик deadline обычно чуть быстрее, включенного по умолчанию cfq (примерный путь, зависит от sda/sdb/sdc и т.д.: /sys/block/sda/queue/scheduler), но это тестировать надо на конкретной машинке...если часто малюсенькие файлы пишете/читаете на/с SSD/HDD и буфера в ядре маленькие выставлены - cfq быстрее, а если буфера большие, чтоб реже жёсткий дёргать - deadline быстрее или если файлы большие - deadline быстрее, разница на некоторых ПК минимальна, так что надо тестировать на конкретном ПК.

    Ответить
  29. можно вопрос? у меня на люникс минт 18 , systemd-analyze показывает 26 s , на самом деле грузится минут 5 , а выключается вечность (минуты 3) , где теперь искать причину?

    Ответить
  30. Изменения systemd 243:
    утилиту systemd-analyze добавлены новые команды:
    "systemd-analyze timestamp" - разбор и преобразование времени;
    "systemd-analyze timespan" - разбор и преобразование промежутков времени;
    "systemd-analyze condition" - разбор и тестирование выражений ConditionXYZ;
    "systemd-analyze exit-status" - разбор и преобразование кодов завершения из номеров в названия и наоборот;
    "systemd-analyze unit-files" - вывод списка всех файловых путей для юнитов и псевдонимов юнитов.

    Ответить
  31. Загрузка ускорилась на 85 тысячных секунд судя по systemd-analyze 🙂
    Но на ощущения стало загружаться быстрее на секунды 2-3.
    Попробовал заменить NetworkManagment на networkd, отвалился инет 🙂

    Ответить
  32. Линукс Минт 20,2. Загружается - почти успеваю покурить. Выключается быстро.
    Не понял. как сэто сделать?:
    Осталось настроить динамическое получение ip адреса при загрузке:

    sudo vi /etc/systemd/network/20-dhcp.network
    [Match]
    Name=enp*
    [Network]
    DHCP=yes
    Файла такого нет. И он не создается.

    Сделал выборочно вот это:
    не использую ppp и мобильные соединения, поэтому и эти сервисы можно отключить.
    sudo systemctl disable pppd-dns
    sudo systemctl mask pppd-dns
    sudo systemctl disable ModemManager
    sudo systemctl mask ModemManager
    До этого ранее были верхние 2 или 3 строчки по 19 секунд.

    И вообще что можно еще сделать?:
    15.033s accounts-daemon.service >
    14.095s networkd-dispatcher.service >
    10.339s udisks2.service >
    10.329s systemd-journal-flush.service >
    9.750s NetworkManager.service >
    8.934s polkit.service >
    8.925s dev-sda3.device >
    8.021s avahi-daemon.service >
    7.239s ModemManager.service >
    5.028s thermald.service >
    5.026s systemd-logind.service >
    5.019s wpa_supplicant.service >
    4.571s apt-daily.service >
    4.385s ubuntu-system-adjustments.service >
    4.267s networking.service >
    4.156s grub-common.service >
    4.144s hddtemp.service >
    4.073s systemd-udevd.service >
    3.945s systemd-resolved.service >
    3.660s alsa-restore.service >
    3.618s colord.service >
    3.514s e2scrub_reap.service >
    3.512s gpu-manager.service

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

    Ответить

Оставьте комментарий