Скорость загрузки вашей операционной системы - это очень важный момент в работе компьютера. Никому не хочется смотреть на заставку загрузки по несколько минут. Чем быстрее загрузится система и будет готова к работе, тем лучше.
Но порой система инициализации выполняет много лишних задач во время загрузки, иногда некоторые сервисы ожидают загрузки других и завершаются только по таймауту через некоторое время. В таких случаях система может загружаться до нескольких минут. В этой статье мы рассмотрим как ускорить загрузку Linux, что нужно для этого настроить, что удалить. А также немного поговорим о процессе загрузки. Мы сосредоточимся на системе инициализации systemd.
Содержание статьи
- Как проходит загрузка Linux
- Анализ загрузки Systemd
- Ускорение загрузки Linux
- Настройка системы
- Ускорение загрузки Linux отключением сервисов
- Выводы
Как проходит загрузка Linux
Во всех подробностях процесс загрузки Linux описан в отдельной статье, здесь же мы рассмотрим только то, что будет касаться ускорения.
На то как BIOS тестирует устройства и запускает загрузчик мы повлиять не можем. Работу загрузчика тоже ускорить не получится, можно только убрать ожидание выбора пункта меню.
Но самое интересное начинается дальше. Перед тем как начать загрузку системы ядро выполняет несколько проверок, загружает модули и так далее. Не все проверки нужно выполнять и не все модули нам нужны.
После того как ядро передало управление системе инициализации, начинается монтирование дисков. Это тоже отнимает время, лучше не использовать виртуальные разделы дисков, например, raid или lvm, да и вообще, чем меньше разделов - тем лучше. Идеальный вариант - только корневой раздел, тогда скорость загрузки linux будет максимальной. Но это очень невыгодный в плане удобства вариант, поэтому найдите золотую серединку. Перед тем как примонтировать каждый диск, система инициализации пытается проверить файловую систему на ошибки, это тоже замедляет загрузку.
Загрузка сервисов отнимает больше всего времени и больше всего работы придется проделать здесь, определить какие сервисы не нужны и отключить их также скрыть те сервисы, которые отключить нельзя. Чтобы понять что именно отключать нам нужно знать сколько времени занимает загрузка каждого сервиса. Давайте рассмотрим анализ скорости загрузки systemd.
Анализ загрузки Systemd
Анализ скорости загрузки системы важен не только в самом процессе оптимизации, но и для того, чтобы оценить насколько эта оптимизация удалась. Перед и после оптимизации нужно замерять время загрузки, чтобы понять чего мы смогли добиться.
Давайте посмотрим насколько быстро грузится наша система сейчас:
systemd-analyze
Да, здесь 17 секунд, не так уж плохо, но будет еще лучше после завершения ускорения загрузки. На загрузку ядра уходит 5.405, а на все остальные сервисы 11.611. Чтобы понять какие именно сервисы замедляют систему нам нужна более подробная информация, мы можем ее получить с помощью параметра blame:
systemd-analyze blame
У нас есть список сервисов, которые загружаются дольше всего, но этот список ни о чем нам не говорит, потому что в Systemd параллельная загрузка сервисов. Если бы во время загрузки была какая-нибудь проблема, мы бы ее увидели, но проблем здесь нет. Нам нужен более детализованный график с указанием не только времени загрузки сервиса, но и с отображением параллельных загрузок и мы можем его получить командой:
systemd-analyze plot > graph.svf
Утилита сгенерирует svf файл с графиком, откройте его в браузере:
Вот теперь у нас есть вся информация, чтобы оптимизировать систему. Здесь отображается не только время загрузки каждого сервиса, но также время когда он начал загружаться и когда завершил. Дальше начнем ускорение загрузки Linux.
Ускорение загрузки Linux
Начнем мы с оптимизации ядра 5 секунд, это не так много, но можно же еще улучшить. Мы не будем пересобирать ядро, хотя и это дало бы больший эффект, мы просто настроим его работу с помощью параметров загрузки.
Настраивать Grub будем правильно. Параметры загрузки ядра находятся в файле /etc/default/grub, а именно в строчке GRUB_CMDLINE_LINUX_DEFAULT. Откройте этот файл:
vi /etc/default/grub
Теперь приводим интересующую нас строчку к такому состоянию:
Разберем подробнее за что отвечает каждый параметр:
- 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='
Нас будет интересовать значение lpj=, укажите его в своем конфигурационном файле.
Также для указания корневого раздела желательно не использовать всякие там UUID, быстрее будет если написать прямо. Для того чтобы конфигуратор grub не использовал grub добавьте в тот же файл строчку:
Сохраните файл и обновим конфигурацию grub:
sudo update-grub
Проверяем, действительно ли установлены нужные опции:
vi /boot/grub/grub.cfg
Да, все правильно, перезагружаем компьютер, и смотрим что вышло:
systemd-analyze
Почти на одну секунду быстрее, и то хорошо. Возможно, у вас эффект будет намного лучше. Теперь идем разбираться с сервисами.
Настройка системы
Во-первых SELinux отключен не полностью. Для полного отключения добавляем строку в файл /etc/selinux/config:
sudo vi /etc/selinux/config
Во-вторых, проверка файловых систем тоже может занять некоторое время. Оставляем проверку на ошибки только для корня. Для этого откройте файл /etc/fstab и приведите строчку для корня к такому виду:
vi /etc/fstab
Последний параметр отвечает за проверку, 1 - проверять, 0 - не проверять. Установите для всех других разделов 0. К тому же boot раздел лучше монтировать по требованию. Для этого изменяем его запись:
Затем давайте перенесем папку /tmp в оперативную память, чтобы уменьшить количество операций на жестком диске:
Ускорение загрузки 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
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 (сервер баз данных) лучше их тоже убрать из автозагрузки и запускать потом вручную.
Перезагружаемся и проверяем скорость загрузки:
У меня скорость загрузки linux выросла на пять секунд. Но это нормально, учитывая, что используется VirtualBox, на реальной машине можно получить и больше. А самая лучшая оптимизация - купить SSD, там можно достичь даже скорости загрузки до двух-трех секунд.
Выводы
Вот и все, в этой статье мы рассмотрели как ускорить загрузку Linux. Если у вас долго грузится Linux вы уже знаете что нужно делать. Если вы знаете другие способы ускорить загрузку Linux, напишите в комментариях!
никогда не замечал, что моя убунту долго загружается, наоборот, она просто летает. всегда. статья для виндузятников, скорее всего. вы заголовком и статьёй не ошиблись?
Нет)
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 и т. п. в старом стартовом демоне такого не нашел.
Графика в sysinit точно нет, а systemctl status был, /etc/init.d/демон status. Время загрузки системы мониторилось по логах.
Ошибочка:
Не systemd-analyse
А systemd-analyze
Поправь $ systemd-analyse на $ systemd-analyze
🙂
>> Отключаем AppArrmor:
и
>>Систему AppArmor тоже можно отключить:
Спасибо, все подправил.
У меня avahi по ходу дела не отключается...плюс при переходе на встроенную сетевую систему systemd перестали работать индикаторы/виджеты сетевые. Может знает кто-нибудь работающие с Systemd для Ubuntu/Mint?
я могу отключить лишь некоторые службы не влезая в конфигурации ядра и граб?
Очень не хочется очередной раз положить систему. 50 секунд много а вот секунд 20 я подождать готов.
Я хочу отключить следующие службы:
23.987s apt-daily.service
15.010s NetworkManager-wait-online.service
9.279s ModemManager.service
стоит ли их отключать? а так же посоветуйте что можно выключить из списка ниже
ModemManager - если не используете модем можно отключить, NetworkManager управляет сетью. Отключить нельзя но можно заменить на networkd. А так да, можете конфигурацию ядра не трогать.
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
Из списка еще можно убрать rsyslog и pppd-dns
Так как здесь в очередной раз задета тема Systemd, то не планируется ли материал, посвященный плюсам и минусам этой новой системы инициализации? Просто было бы интересно.
Не знаю даже... наверное можно будет сделать.
У меня вот этот сервись дольше всего грузится, можно ли его отключить?
1min 3.847s apt-daily.service
Этот сервис отвечает за автоматическое обновление системы, если вам не нужна эта функция, можете отключить. А учитывая что он занимает так много времени, то однозначно нужно отключать.
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
Минус -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 тебе в карму.
Хм, ещё бы хотел спросить, не радикально ли отрубать крон? Все ли поймут, что теперь нужно использовать systemd?
Допишу несколько строк про это, думаю так будет лучше.
Я замечал,что Линукс у меня загружается дольше чем Вин8.1 .Попробую исправить . Спасибо
У меня - наоборот. http://osila.ru/?p=276
Вечером проведу оптимизацию на том ПК и обновлю тайминги в статье еще раз.
Теперь бы еще статью по компиляции кастомного ядра. Сейчас юзаю Zen-kernel на Арче, но хотелось бы пересобрать под свое железо все.
Так есть же: http://losst.pro/sobiraem-yadro-linux
Оу, спасибо, ушел собирать.
systemd-journald.service грузится 6,4 секунды, половину времени от всех остальных сервисов вместе взятых.
А можете подсказать, что за служба такая networking? Гугл знает только NM и т. п. =(
Хм, как я понимаю, эта служба и поднимает сеть? Тогда зачем её отключать?
Эта служба поднимает сеть с помощью конфигурационных файлов /etc/network/interfaces, если мы будем поднимать сеть с помощью networkd, то она нам ненужна.
было
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
Странно, имею SSD-256Гб, меньше чем
Startup finished in 4.457s (kernel) + 9.271s (userspace) = 13.728s
не могу добится.
Система Linux Mint 18,
установлен в /
Смотрите запускаемые сервисы, может еще что-то можно заменить или отключить. Но вообще, это отличный результат.
Разве это отличный результат для SSD? У меня с HDD на 3 секунды дольше грузится.
Немного разобрался, основное время теряется при монтировании 4-х шар от NAS-а
и есть еще пожиратель времени при загрузке - systemd-rfkill.service, пока не разобрался с чем его едя, и можно ли его исключить из загрузки.
UPD.
NetworkManager-wait-online.service у меня не отключен, а он отьедает 6.8 сек.
Автору огромное спасибо! Уменьшил время загрузки своего linux mint 18 с 26 сек до 13!!
Хотел отключить проверку фс при загрузке. Ввожу - vi /etc/fstab , но не получается на ноль переправить циферки. Не подскажете как?
1. Нужно это делать с root правами - попробуйте sudo vi /etc/fstab
2. Если не знакомы с редактором vi - sudo nano /etc/fstab
Команды вводил от рута, просто не могу циферку 2 на 0 поменять. 🙁
А если - sudo nano /etc/fstab , то банально нет циферок...
sudo vi /etc/fstab, затем переместить курсор на цифру которую нужно заменить нажать r, ввести то на что нужно заменить, нажать ESC написать :wq нажать Enter. А вообще я через пару дней напишу статью про vim, чтобы новым пользователям было проще.
@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 модем.
Подскажи Админ. Заранее благодарю за ответы.
Спасибо, полезная статья, нашел узкое место:
$ systemd-analyze blame
16.138s apt-daily.service
GRUB_DISABLE_LINUX_UUID=true
Тут нужно понимать, что делаешь. В некоторых случаях при подключении флешки, HDD и других устройств grub может дать им имя sda, а значит системе нужно будет грузится не с раздела sdaX, а с того, на которое grub переименовал ваше устройство, например sdbX. А с включенной этой опцией загрузчик не заметит подмены и будет пытаться грузится с записанного в него места. Вот в таких случаях UUID решает проблему. Ведь его можно изменить либо намеренно, либо отформатировав раздел.
Отличная статья.+
Простите если вопрос покажется глупым, а как всё это проделать на Linux Mint 17, т. е. без утилиты systemd.
без systemd никак. Только вручную анализировать логи.
Спасибо, за ответ и за хороший информативный сайт.
Я вот установил 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. Можно ли что-то сделать с этим?
13.176s preload.service однозначно можно убрать если оно не помогает, а делает только хуже.
Отличная статья.Еще бы статью про энергосбережение.
Посмотрел коменты и не нашел подобной траблы:
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 кликов).
всем привет. можете сказать что есть что и что можно отключить?
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
здравствуйте! я решил проверить скорость загрузки. время загрузки составляет 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
Сделал по написанному. Все было неплохо до отключения Нетворк-менеджера. После этого вай-фай пропал(( я в печали(
У меня с NetworkManager странная вещь. При его замене на system-networkd и после перезагрузки отключается автоматический вход под моим профилем. В настройках и в конфиге при этом автовход включён. Стоит только произвести обратную замену на NetworkManager - и автовход снова появляется... Что это может быть?
автовход средствами чего? на десктопе НЕ надо тушить NM.
Граждане, может кто увидит незамыленным глазом, что ещё можно потушить? (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
При чистой установке,данная статья помогла мне увеличить(!) загрузку системы на 5 секунд 🙂
Ребят, у меня одного после всего этого система начала дольше грузиться?
Всего на 2 секунды...
и самое интересное, что ядро грузится на 2 секунды быстрее systemd грузится стал быстрее на 1 секунду... а все остальное стало грузиться медленнее.
у меня на 1 с стало дольше грузиться)))
у меня на 2, но у меня кали. Было 17 стало 19 (
Спасибо за статью, искал полчаса в чем проблема у меня, вроде ssd, а грузилось 50 сек. А тут все в одном месте расписано. В моем случае NetworkManager был основной проблемой.
Startup finished in 3.166s (kernel) + 3.064s (userspace) = 6.230s
Само название статьи лично у меня, сидящего на линуксе 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
Очень интересно. Подчерпнул для себя некоторые полезные новшества. Буду пробовать.
Автор,
Проблема такая
31.800s NetworkManager-wait-online.service
пробую отключить через
sudo systemctl NetworkManager-wait-online.service
в ответ получаю
Unknown operation NetworkManager-wait-online.service.
Автор, я перешёл на networkd, но он грузится не 5 секунд, как NM, а 32. Странное поведение.
После отключения NM исчез индикатор сети из панели. Есть ли подобный для networkd? Сеть работает отлично!
Статья классная, однако в моем случае такие манипуляции ни к чему не привели, так как проблема в жестком диске. Решил вернуть plymouth назад, чтоб красивее было. Удаление соответствующей команды из грубконфига и замена 0 на 1 ни к чему не привели. Подскажите, как вернуть plymouth. Update-grub делать не забывал.
В придачу сервисы plymouth включмте обратно в systemd.
networkd грузится 2 минуты (((
подскажите плиз-в линуксе новичёк, на компе 2 системы Дебиан и линукс Минт.Корни на ssd .Основная Дебиан грузится 2-3секунды - минт загружается 1.5 минуты.что-то можно сделать для более быстрой загрузки линукс минт?
Убрать Cinnamon...например - Mint Mate...а если серьёзно - Mint LMDE 3 ставьте и смотрите скорость загрузки 🙂 у меня на SATA2 SSD (старенький бук с двухгодовалым SSD) - 18.039 секунд + 10 секунд ожидания GRUB на выбор ОС (ставил 3 секунды, потом 5-ть...вернул на штатные 10 сек) и я подумываю, как бы замедлить загрузку, а то чай налить не успеваю....дурная привычка: сначала вкл. нажать, а потом пойти чай налить...
Изначально мой 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
И да, раз уж коснулся этой темы, по ускорению работы с жёстким диском - планировщик deadline обычно чуть быстрее, включенного по умолчанию cfq (примерный путь, зависит от sda/sdb/sdc и т.д.: /sys/block/sda/queue/scheduler), но это тестировать надо на конкретной машинке...если часто малюсенькие файлы пишете/читаете на/с SSD/HDD и буфера в ядре маленькие выставлены - cfq быстрее, а если буфера большие, чтоб реже жёсткий дёргать - deadline быстрее или если файлы большие - deadline быстрее, разница на некоторых ПК минимальна, так что надо тестировать на конкретном ПК.
можно вопрос? у меня на люникс минт 18 , systemd-analyze показывает 26 s , на самом деле грузится минут 5 , а выключается вечность (минуты 3) , где теперь искать причину?
Systemd-manager представляет собой приложение для управления службами systemd !
37 секунд грузит kernel в чем может быть проблема
Изменения systemd 243:
утилиту systemd-analyze добавлены новые команды:
"systemd-analyze timestamp" - разбор и преобразование времени;
"systemd-analyze timespan" - разбор и преобразование промежутков времени;
"systemd-analyze condition" - разбор и тестирование выражений ConditionXYZ;
"systemd-analyze exit-status" - разбор и преобразование кодов завершения из номеров в названия и наоборот;
"systemd-analyze unit-files" - вывод списка всех файловых путей для юнитов и псевдонимов юнитов.
у меня в файле fstab не /boot, а /boot/efi. Это нормально?
Вообще предлагаю всем валить с этой systemd, самая поганая система инициализации, чтобы сократить время загрузки используйте chkconfig, добро пожаловать сюда: https://nosystemd.org/
Загрузка ускорилась на 85 тысячных секунд судя по systemd-analyze 🙂
Но на ощущения стало загружаться быстрее на секунды 2-3.
Попробовал заменить NetworkManagment на networkd, отвалился инет 🙂
Было бы хорошо расписать каждую опцию более подробно, например libahci.ignore_sss=1
ты что болен? У меня 3G модем полностью дружит с убунтой.
У меня после этих команд не открываеться корень в файловой менед '/' .Что жто может быть
Линукс Минт 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
Все вышеперечисленные автором операции рекомендуется проводить максимально осторожно, чтобы не навредить системе, либо сначала протестировать на виртуальной машине. Некоторые опции могут как улучшить, так и ухудшить скорость загрузки. SElinux - важный модуль защиты и отключать его не рекомендуется.