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

Материал из Rosalab Wiki
Версия от 11:03, 14 мая 2015; Sergey Sokolov (обсуждение | вклад) (Некоторые опции ядра)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск

Чем замеряем

первое, что нам потребуется - это не большая утилита, которая умеет по логам строить интересный график

systemd-analyze из пакета:

urpmi systemd-tools

Для начала построим наш график до того, как что-то навыключали:

systemd-analyze plot > ~/default.svg

Ну графике есть три довольно значимых этапа загрузки:

Startup finished in 843ms (kernel) + 8841ms (initramfs) + 24549ms (userspace) = 34235ms

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

Общие рекомендации

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

Выкидываем лишнее из initramfs

дописываем в конец конфигурационного файла dracut:

echo 'omit_dracutmodules+="i18n plymouth resume"' >> /etc/dracut.conf.d/50-dracut-rosa.conf

и перегенерим наш initrd:

dracut -f /boot/initrd-$(uname -r).img

Некоторые опции ядра

в файле /etc/default/grub находим параметр GRUB_CMDLINE_LINUX_DEFAULT и приводим его к такому виду:

GRUB_CMDLINE_LINUX_DEFAULT='splash=silent logo.nologo quiet nouveau.modeset=0 rootfstype=ext4 plymouth.enable=0'

теперь необходимо перегенерить конфиг груба:

update-grub2

Ускоряем запуск userspace

Включим профилировщик:

systemctl enable systemd-readahead-collect.service systemd-readahead-replay.service
systemctl start systemd-readahead-collect.service systemd-readahead-replay.service
Idea.png
Примечание
Эффект от службы readahead проявится после нескольких (обычно 2-3) перезагрузок.

Если у Вас выделен на отдельный раздел /home то имеет смысл к опциям его монтирования в файле /etc/fstab добавить такие строки noauto,x-systemd.automount

А дальше отключаем кучу ненужных сервисов:

systemctl disable mysqld.service
systemctl disable polkit.service
systemctl disable acpid.service
systemctl disable apmd.service
systemctl disable console-kit-daemon.service
systemctl disable wine.service
systemctl disable mdadm.service
systemctl mask mdadm.service
systemctl mask systemd-ask-password-plymouth.path
systemctl mask plymouth-start.service
systemctl disable laptop-mode.service
systemctl disable bluetooth.service
systemctl disable wpa_supplicant.service
systemctl mask mandrake_everytime.service
systemctl mask mysqld.service
systemctl mask dev-hugepages.mount
systemctl mask fedora-storage-init-late.service
systemctl mask fedora-storage-init.service
systemctl mask console-kit-log-system-start.service
systemctl disable lm_sensors.service
systemctl mask systemd-vconsole-setup.service
systemctl disable rpcbind.service
systemctl disable autofs.service
systemctl mask partmon.service
systemctl mask plymouth-read-write.service
systemctl disable rsyslog.service
systemctl disable postfix.service
systemctl mask avahi-daemon.service
systemctl mask sys-kernel-debug.mount
systemctl mask mandriva-save-dmesg.service
systemctl mask mandriva-kmsg-loglevel.service
Idea.png
Примечание
Некоторые сервисы Вам могут быть необходимы. Например, при использовании "легких" оконных сред (LXDE, XFCE) вам может понадобиться acpid.

Итог:

Циферки говорят сами за себя:

Startup finished in 937ms (kernel) + 974ms (initramfs) + 2887ms (userspace) = 4800ms