Difference between revisions of "Improving performance/Boot process (Русский)"

From ArchWiki
Jump to navigation Jump to search
(redirect to original article as current version is totally outdated and unmaintained)
Tag: New redirect
 
(30 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{i18n|Improve Boot Performance}}
+
#REDIRECT [[Improving performance/Boot process]]
 
 
== Предисловие ==
 
 
 
Ускорение загрузки системы может быть обеспечено уменьшением время ожидания и изучением того как взаимодействуют некоторые системные файлы и скрипты. В этой статье сделана попытка описать способы уменьшения времени загрузки системы.
 
 
 
== Изменение загрузочных файлов ==
 
 
 
===/etc/inittab===
 
 
 
====Асинхронный запуск====
 
{{Note|Использование этого способа не гарантирует, что все демоны будут запущены до Xorg. Это может вызвать проблемы, если какие-то программы требуют чтобы dbus был запущен (ck-launch-session, gnome, kde, и т.д.).}}
 
Скрипты-initscripts могут запускаться асинхронно вместо того чтобы запускаться строго по порядку.
 
 
 
<pre>
 
# Используйте once вместо of
 
rc::sysinit:/etc/rc.sysinit
 
rs:S1:once:/etc/rc.single
 
rm:2345:once:/etc/rc.multi
 
rh:06:once:/etc/rc.shutdown
 
su:S:once:/sbin/sulogin -p
 
</pre>
 
 
 
====Закомментируйте неиспользуемые терминалы====
 
agetty - консольный теримнал, который вызывается <tt>Ctrl+Alt+F1-6</tt>.
 
#Закомментируйте неиспользуемые терминалы. Если требуется только два теримнала (<tt>tty1</tt> и <tt>tty2</tt> inittab будет выглядеть так:
 
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
 
c2:2345:respawn:/sbin/agetty -8 38400 tty2 linux
 
#c3:2345:respawn:/sbin/agetty -8 38400 tty3 linux
 
#c4:2345:respawn:/sbin/agetty -8 38400 tty4 linux
 
#c5:2345:respawn:/sbin/agetty -8 38400 tty5 linux
 
#c6:2345:respawn:/sbin/agetty -8 38400 tty6 linux
 
Кроме того, рекомендуется использовать более легкие терминалы, таких как {{Package Official|fgetty}},  ([http://aur.archlinux.org/packages.php?ID=13793 mingetty], которые лишёны printfs и скомпилированы с {{Package Official|dietlibc}}).
 
 
 
# pacman -S fgetty
 
Измените слелующие строки в /etc/inittab для того, чтобы использовать <tt>fgetty</tt>:
 
c1:2345:respawn:/sbin/fgetty tty1 linux
 
c2:2345:respawn:/sbin/fgetty tty2 linux
 
 
 
===/boot/grub/menu.lst===
 
Удалите параметр разрешения <tt>vga=</tt> [[Wikipedia:Framebuffer|framebuffer]] и добавьте [http://lwn.net/Articles/314808/ fastboot] и [http://www.kernel.org/doc/Documentation/kernel-parameters.txt quiet] в параметры загрузки ядра:
 
kernel /vmlinuz26 root=/dev/disk/by-uuid/UUID ro fastboot quiet
 
 
 
===/etc/mkinitcpio.conf===
 
 
 
Удалите HOOKS, которые вам не нужны и рассмотрите возможность использования только base (иногда udev также необходим), а также необходимые MODULES для вашего корневого раздела (и клавиатуры, вместо USBInput).
 
 
 
Больше информации можно узнать в [[mkinitcpio| этой статье]].
 
 
 
===/etc/rc.conf===
 
Уменьшить загрузку системы можно также с помощью отключения автозагрузки модулей.
 
MOD_AUTOLOAD="no"
 
и в ручную внесите необходимые вам модули в секцию HARDWARE в строку MODULES=().
 
 
 
В секции NETWORKING отключите все не используемые сетевые интерфейсы.
 
INTERFACES=(lo eth2 !eth0 !eth1 !eth3)
 
Ручная настройка параметров сети также может немного ускорить загрузку.
 
 
 
Найдите и удалите все неиспользуемые демоны:
 
DAEMONS=(alsa network gdm)
 
Затем переместите ваш Xdm в начало, а остальные демоны запускайте в фоновом режиме.
 
DAEMONS=(@gdm @alsa @network)
 
Также демоны необходимо распалагать в определённом порядке, т.к. часто они зависят друг от друга. Например демон  hal зависит от dbus.
 
 
 
===/lib/udev/load-modules.sh===
 
 
 
В некоторых системы процесс загрузки [[udev]] занимает слишком много времени. Последние версии пакета {{Package Official|udev}} включают не только новые udev бинарники, но и оптимизированные скрипты. {{Filename|/lib/udev/load-modules.sh}} определяет логику занесения модулей в чёрный список. Этот скрипт хорошо написан, но этот скрипт запускается для каждого модуля, что замедляет процесс загрузки. В статье [[Speed Up udev]] более подробно описываются способы обхода этой проблемы.
 
 
 
=== /etc/rc.sysinit ===
 
Этот скрипт отвечает за большую часть вывода, который вы видите во время загрузки системы, т.е. это критический системный файл, который вызывает другие файлы, такие как ''rc.conf'', и загружает модули, монтирует файловые системы, обрабатывает ошибки.
 
 
 
Некоторые строки в этом файле могут быть не нужны вам. Удалив или закомментировав их, вы можете выйграть несколько секунд при загрузке системы. Но учтите, что вы делаете это на свой страх и риск. Например, если у вас нет RAID, LVM или шифрования, то вы можете удалить сроки, отвечающие за это.
 
 
 
Вы тажке можете добавить амперсант (&) для параллельного запуска команд, но будьте осторожны, т.к. в последющих чатсях скрипта другие команды могут ожидать завершения предыдущих.
 
 
 
== См. также  ==
 
 
 
[[Systemd]]
 

Latest revision as of 17:36, 14 October 2019