2009.1-speedboot
Материал из Mandriva Russian Community Wiki
Скоростная загрузка появилась в бэта-версии Mandriva Linux 2009 Spring.
Что делает скоростная загрузка
Скоростная загрузка пытается прежде всего выполнить все действия, необходимые для загрузки графической системы (дисплейного менеджера), а потом, в фоновом режиме, продолжает запускать оставшиеся действия, необходимые для полной загрузки.
Как это реализуется в действительности
Мы используем уже существующие методы, которые были использованы в некоторых наших OEM продуктах, но придерживаемся более стандартной реализации, сохраняя текущие сценарии инициализации.
Чтобы запустить минимальное количество служб, необходимых для запуска дисплейного менеджера, мы ввели уровень запуска «S», в котором задействовано только 5 служб: acpid, dbus, hal, syslog, dm. К сожалению chkconfig воспринимает только числовой формат уровней запуска, поэтому уровень запуска «S» был реализован как уровень запуска «7».
Когда загрузка происходит в скоростном режиме, многие действия, выполненные сценариями инициализации, игнорируются. Поэтому скоростная загрузка может не работать в вашей системе.
Для первого уровня скоростной загрузки я отключил в rc.sysinit по возможности максимальное количество действий. Некоторые действия, которые просто нужно было задержать, запускаются после загрузки дисплейного менеджера, таким образом я попытаюсь отсрочить некоторые из отключенных в настоящий момент действий для второго уровня скоростной загрузки.
На уровне 2 (или 3) скоростной загрузки мы автоматически включим скоростную загрузку, если некоторые критерии позволят это сделать, и если в системе не будет включено ни одной конфликтующей возможности такой, как: crypto FS, raid, network authentication. Если скоростная загрузка «падает», система должна автоматически перейти к стандартной загрузке. В таком случае система не будет пытаться повторить скоростную загрузку.
В рамках использования скоростной загрузки в настоящий момент readahead был полностью отключён. Наши измерения выявили регресс при использовании readahead и sreadahead.
Как использовать скоростную загрузку
По умолчанию скоростная загрузка включена в автоматическом режиме:
- Первая загрузка определённой версии ядра: скоростная загрузка отключена и будет проверяться, чтобы посмотреть, не возникает ли каких-либо препятствий для её включения.
- Вторая загрузка той же версии ядра: если все условия выполняются, скоростная загрузка будет включена, текущее состояние сохраняется.
- Если скоростная загрузка не работает, она будет протестирована ещё раз при следующей загрузке и, если проблема возникнет снова, будет отключена. Если второй раз загрузка прошла успешно, скоростной режим останется включённым.
- Скоростная загрузка будет автоматически отключена, если включена сетевая аутентификация (network authentication) или если уровень запуска отличен от «5».
- Настройки по умолчанию хранятся в файле /etc/sysconfig/speedboot. Скоростной загрузкой можно управлять из командной строки ядра с помощью команды speedboot=yes/no/auto/probe.
Команда speedboot=probe сбрасывает текущее состояние режима скоростной загрузки для определённой версии ядра (и вернёт проверку скоростной загрузки). Команда должна вводиться вручную в командой строке ядра.
Текущее состояние скоростной загрузки хранится в файле /var/lib/speedboot/status.
Отсутствующие возможности в скоростной загрузке:
- тест скорости диска для включения/выключения упреждающего чтения (readahead) (всегда включено, но с медленными дисками может замедлить работу);
- настройка «разделения» readahead между первой и второй фазой загрузки.
Конечно, мы бы хотели собрать как можно большое количество диаграмм загрузки как со скоростной загрузкой, так и без неё. Диаграмма загрузки (howto).
Если скоростная загрузка «падает» на вашей системе, составьте отчёт об ошибке (initscripts) и прикрепите диаграммы скоростной и обычной загрузок.

