Ускорение загрузки
Содержание
Чем замеряем
первое, что нам потребуется - это не большая утилита, которая умеет по логам строить интересный график
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'
теперь необходимо перегенерить конфиг груба:
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
Эффект от службы readahead проявится после нескольких (обычно 2-3) перезагрузок.
А дальше отключаем кучу ненужных сервисов:
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-setup.service systemctl disable rpcbind.service 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
Обратите внимание, что некоторые сервисы Вам могут быть необходимы. Например, при использовании "легких" оконных сред (LXDE, XFCE) вам может понадобиться acpid.
Итог:
Циферки говорят сами за себя:
Startup finished in 937ms (kernel) + 974ms (initramfs) + 2887ms (userspace) = 4800ms