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

Материал из Rosalab Wiki
Версия от 15:53, 14 марта 2013; Sergey Sokolov (обсуждение | вклад)

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

Чем замеряем

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

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

urpmi systemd-tools

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

systemd-analyze plot > ~/default.svg

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

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

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

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

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

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

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

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

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

dracut -f /boot/initrd-3.6.10-nrj-desktop-1rosa.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'

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

grub2-mkconfig > /boot/grub2/grub.cfg

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

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

systemctl enable systemd-readahead-collect.service systemd-readahead-replay.service
systemctl start systemd-readahead-collect.service systemd-readahead-replay.service

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

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 disable proc-sys-fs-binfmt_misc.mount
systemctl mask proc-sys-fs-binfmt_misc.mount
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
systemctl disable rpcbind
systemctl disable autofs.service
systemctl mask partmon.service
systemctl mask plymouth-read-write.service
systemctl mask mandriva-save-dmesg.service
systemctl disable rsyslog.service
systemctl disable postfix.service
systemctl mask avahi-daemon.service

Обратите внимание, что некоторые сервисы Вам могут быть необходимы.

Итог:

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

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