LinuxDoc.ru - Новости Linux - Разработчики systemd: загрузка с initrd оказалась быстрее загрузки без initrd

Разработчики systemd: загрузка с initrd оказалась быстрее загрузки без initrd

LinuxDoc.Ru,
В ходе работ по улучшению поддержки системного менеджера systemd в качестве init-процесса начального RAM-диска (initrd), разработчики Кей Сайверс и Гарольд Хойер столкнулись с интересным и по-своему курьёзным фактом — при использовании initrd, суммарное время инициализации ядра и initrd оказалось примерно на 10% меньше, чем время инициализации ядра без initrd.

Начальный RAM-диск (initrd) представляет собой специализированную файловую систему, которая используется ядром на стадии начальной загрузки. Основная задача initrd — обеспечить монтирование жизненно важных файловых систем: корня и /usr. В наиболее простых ситуациях (локальные дисковые разделы) данная работа может быть проделана и ядром, однако в случае использования для этих разделов специфических механизмов (LVM, RAID, multipath, шифрование, NFS), initrd является наиболее простым и гибким решением. Также он может оказаться полезен в качестве аварийно-восстановительной системы, предоставляя администратору средства, необходимые для исправления ошибок при монтировании ключевых системных разделов.

Традиционно считалось, что отказ от initrd должен неизбежно привести к увеличению скорости загрузки. Однако, при использовании в качестве init-процесса initrd systemd, результат получился неожиданным и парадоксальным: ядро в сочетании с initrd отрабатывали быстрее, чем ядро без initrd. Наиболее вероятная причина состоит в том, что при загрузке без initrd ядро выполняет вызов wait_for_device_probe(), ожидая завершения инициализации всех периферийных устройств. В то время как при использовании initrd с systemd, загрузка продолжается сразу после инициализации необходимых устройств (т.е. носителей корня и /usr).

Асинхронная архитектура systemd, в отличие от классической синхронной, позволяет не задерживать процесс загрузки на ожидание устройств, которые не требуются на данном этапе. В зависимости от аппаратной конфигурации системы, эта задержка может сильно отличаться: например, встроенный в ноутбук 3G-модем без SIM-карты задерживает загрузку на 5 секунд, а сервер с тысячами физических дисков и/или логических томов может потерять несколько десятков минут, опрашивая каждое блочное устройство на предмет наличия на нем файловой системы.

Стоит отметить, что в обсуждении один из разработчиков приводит довольно простой патч, который теоретически должен исправить эту проблему, путём перевода данной операции в ядре на асинхронный режим. К сожалению, пока отсутствуют результаты измерений, которые бы позволили судить об эффективности такого исправления.

В дополнение, несколько других, более коротких новостей от проекта systemd:

Разработчики systemd и Arch Linux Том Гундерсен и Дейв Рейзнер обеспечили поддержку systemd в качестве init-процесса initrd при использовании стандартного для Arch генератора initrd — mkinitcpio (в то время, как упомянутая выше работа Сайверса и Хойера акцентируется на dracut, стандартном initrd-генераторе Fedora/RHEL и Mageia/Mandriva).

Разработчик Arch Linux и SDDM Андреа Скарпино представил библиотеку libsystemd-qt, упрощающую обращение к функциям systemd из программ на базе фреймворка Qt. В качестве примера использования библиотеки приводится простая программа ksystemd, позволяющая просматривать состояние различных системных юнитов. В целом, проект направлен на улучшение взаимной интеграции systemd и KDE.

Разработчики пользовательского окружения Enlightenment обеспечили поддержку использования systemd в качестве системы инициализации сеанса. Запуск пользовательского сеанса в десктоп-окружении во многом аналогичен загрузке системы, что позволяет использовать для решения обеих этих задач один и тот же механизм, с минимальной адаптацией. Ранее, в силу сложившейся в эпоху SysV init традиции неоднократно дублировать и реализовывать заново уже существующую функциональность, каждое десктоп-окружение предлагало свою собственную систему инициализации сеанса. Замена множества собственных реализаций на общий стандарт должна упростить жизнь разработчикам DE и позволит им сконцентироваться на более актуальных задачах.

Опубликованы видеозаписи докладов сотрудника компании Wargaming (известной своей игрой World of Tanks) Максима Мельникова, одного из администраторов инфраструктуры серверов World of Tanks. В первом докладе «Зачем нам systemd», кратко рассматриваются ключевые преимущества systemd, полезные для системных администраторов и отсутствующие в других решениях. Во втором докладе обсуждаются достоинства механизма Journal и разбирается практический пример его использования. Доклады примечательны тем, что тема использования systemd впервые затронута на русскоязычной конференции разработчиков и пользователей Linux ((LVEE 2012).
linux

Новости Linux

. Разработчики systemd: загрузка с initrd оказалась быстрее загрузки без initrd Разработчики systemd: загрузка с initrd оказалась быстрее загрузки без initrd
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.
>>> Состоялся экспериментальный выпуск открытой реализации Win32 API - Wine 3.16. С момента выпуска версии 3.15 было закрыто 43 отчёта об ошибках и внесено 205 изменений.
>>> Подготовлен новый стабильный релиз интерфейса для упрощения настройки параметров сети - NetworkManager 1.14. Плагины для поддержки VPN, OpenConnect, PPTP, OpenVPN и OpenSWAN развиваются в рамках собственных циклов разработки.
>>> Доступна для тестирования бета-версия пользовательской оболочки Plasma 5.14, построенной с использованием платформы KDE Frameworks 5 и библиотеки Qt 5 с применением OpenGL/OpenGL ES для ускорения отрисовки. Протестировать новый выпуск можно через Live-сборку от проекта openSUSE и сборки от проекта KDE Neon. Пакеты для различных дистрибутивов можно найти на данной странице. Релиз ожидается 9 октября.
>>> Линус Торвальдс сообщил о временном уходе с поста координатора разработки ядра Linux. До возвращения Линуса его место займёт Грег Кроа-Хартман (Greg Kroah-Hartman), отвечающий за поддержку стабильной ветки ядра. Основной задачей Грега станет доведение до конца разработки выпуска 4.19, который сейчас находится на стадии четвёртого кандидата в релизы. Точных сроков не называется, но предполагается, что Линус вернётся к работе к моменту открытия следующего окна приёма изменений, в рамках которого начнётся формирование ядра 4.20.


Редакция портала:

Добро пожаловать на сайт, посвященный документации к ОС Linux, ее переводу и распространению. Мы надеемся, что Вы найдете тут всю необходимую информацию. Здесь представлены три основных вида документации на русском языке: руководства (man-pages), HOWTO и mini-HOWTO. В скором будущем возможно появление и других видов документации.
Авторские права на представленные документы принадлежат авторам перевода и распространяются в соответствии со Стандартной Общественной Лицензией, если в документе не указано обратное.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.