Сравнение мужей: Systemd vs SysV, или ещё раз о пузометрии

Алексей Федорчук

С самого появления менеджера инициализации, именуемого systemd, он был окружён множеством легенд.  Из которых самая известная — легенда о фантастической скорости загрузки машины, которую он обеспечивает. Она же — самая устойчивая: похоже, развеять её ничуть не проще, нежели Чёрную легенду о Ричарде Третьем…

Давеча на Unixforum’е развернулся очередной виток обсуждения этой легенды. Пардон, с подачи автора этих строк, который никогда не упустит случая посмеяться над тем, что кажется ему смешным. Ну и, разумеется, в ход пошли всё те же аргументы о распараллеливании процессов при загрузке и механизме cgroups для их отслеживания. Влекущими за собой всё ту же скорость загрузки.

Так что для начала пара цитат из постов serzh-z‘а. Первая из них:

15 лет назад речь не шла о 2-х (двух) секундах, с момента передачи управления ядру и отображения менеджера GUI

Не могу с этим не согласиться — даже и пять лет назад это было трудно себе представить. Но ведь главная доля заслуги тут —  сочетания интерфейса SATA-III, накопителей SSD и синхронной памяти в них. На фоне чего различия времени загрузки при любых схемах инициализации просто теряют физический смысл.

Однако  serzh-z с этим не согласен:

Системе инициализации на bash и с initrd — 2 секунды не светят.

В ответ на что я предположил, что при отключении сети на моей системе получится нечто подобное — с давних пор изрядное время при загрузке у меня уходит на поиск DHCP сервера и синхронизацию времени с сервером NTP.

Я, конечно, ничего не понимаю в  и прочих systemd’овых штуковинах. Но привык доверять своим глазам и своему секундомеру. Да и измерить время загрузки  своей машины вполне в состоянии, руки пока не отваливаются. Тем более, что применяемая мной openSUSE (пока) даёт возможность прямого сравнения времени загрузки при использовании той или иной схемы инциализации.

Ранее я уже проводил такого рода измерения. И не откажу в удовольствии процитировать себя любимого:

измерения скорости загрузки с секундомером вообще показали интересную картину: при использовании systemd  openSUSE грузилась 55 секунд (это почти втрое дольше, чем Fedora 14 ещё без оного). А вот если переключиться на SysVinit — то время загрузки…падает до 46 секунд.

Предвижу возражение: те измерения проводились на ноутбуке с его медленным и отсталым традиционным винчестером. Да и systemd тогда, в феврале месяце текущего года, была ещё не той системы. А вот  на мощной системе с современным SSD накопителем современная же systemd покажет себя во всей красе.

Принимаю вызов. Благо openSUSE, позволяющая сравнение скорости загрузки, стоит у меня как раз на современных SSD накопителях, принадлежащих к числу самых быстрых из ныне имеющихся.

Итак, традиционно меряю время от выбора нужного пункта  в меню GRUB до появления приглашения к авторизации в KDM. Сначала при моём обычном наборе стартовых сервисов (то есть с network и всеми с ним сопряжёнными). Получаем:

  • при systemd — 10 секунд;
  • при SysV… 10 секунд.

Отключаю все сетевые службы и повторяю процедуру. Получаю:

  • при systemd — 10 секунд;
  • при SysV… 8 секунд.

Признаю, загнул в азарте, и при SysV двух секунд на загрузку действительно не светит. Но ведь их не засветило и при использовании systemd. Более того, если при SysV отключение «лишних» служб ведёт к сокращению времени загрузки (пусть и на жалкие 2 секунды), то sysyemd на это просто не реагирует.

Но это ещё не всё. После авторизации у меня грузится KDE с кучей постоянно применяемых мной приложений, в том числе FireFox и Rekonq, в каждом из которых открыто по несколько сайтов. Так вот, после загрузки с помощью SysV сайты эти всегда действительно открыты в соответствующих вкладках. При systemd же вместо этого я вижу сообщение об ошибке и предложение восстановить сеанс в обоих браузерах.

То есть получается, что systemd ведёт себя подобно Windows, которая сначала являет своему пользователю графический интерфейс, а потом втихаря подгружает всякие, в том числе и сетевые, службы. В преферансе за такое бьют канделябром…

А не ты ли, Лёха, скажете вы мне, всегда утверждал, что время загрузки — это такая мелочь, о которой смешно говорить?  И что к скорости реальной работы она не имеет никакого отношения. Признаю, утверждал, утверждаю и буду утверждать, пока не заделаюсь коммивояжером по продаже дамских корсетов. Но ведь скоростью загрузки, в числе прочих достоинств, козыряют как раз разработчики systemd. И если их утверждения относительно такой вещи, которую легко измерить и проверить, мягко говоря, не очень соответствуют действительности — какие у меня основания верить во все прочие несравненные достоинства systemd?

Правда, убедить в чём-то приверженцев этого менеджера инициализации ничуть не легче, чем читателя Шекспира — в том, что Ричард Третий

… был славный малый.
Храбрец, рубака, умер и истлел.

А вот причины этого явления заслуживают отдельного этнографического исследования, которому я посвящу вскоре очередной памфлет.

Сравнение мужей: Systemd vs SysV, или ещё раз о пузометрии: 15 комментариев

  1. 2 секунды от груба до логина, если убрать dhcp в фон. SSD разумеется, openrc-0.10.5.
    После выбора системы в грубе экран на 2 секунды гаснет, а когда включается, там уже agetty.
    [quote]В преферансе за такое бьют канделябром…[/quote]
    Ага, «токмо надобно решить, как верней тебя решить…»

  2. Правду говорят, что, погнавшись за двумя зайцами, ни одного не поймаешь.
    Какой смысл гнаться за скоростью загрузки, если после рекордного старта системой всё равно нельзя пользоваться?
    Как нет смысла в вырубание служб для ускорения загрузки (от системы толку будет мало), так и нет смысла в подгрузке служб уже после якобы «ситсема готова». Время, за которое система будет готова к работе, не изменится.

  3. Опечаточка. Reqonk надо заменить на rekonq.

  4. Вобщем сижу на Fedora с появления systemd и дома и на работе 2 разных машины. Так вот грузится она у меня и там и там медленнее, чем остальные линуксы. Последние что сравнивал ubuntu и archlinux (ещё до systemd).
    Убунта и сейчас параллельно стоит и дома и на работе, грузится быстрее.
    Не селен я в теориях инициализации, но вот Fedora по ощущениям грузится долго, также долго, как и все другие линуксы или дольше. Так что про другие +/- ничего не скажу, а скорость это не к systemd походу.

  5. 2 FreeArcher А вот Fedora 146, которая ещё без systemd была, грузилась фантастически быстро.

  6. Вобще-то скорость загрузки — это мелочь в сравнении с теми проблемами, которые реально вызывает «самый прогрессивный» init-менеджер. Вот, полюбуйтесь на памятник жертвам прогресса:
    http://archlinux.org.ru/forum/viewtopic.php?f=16&t=10228&hilit=&view=unread
    По ссылке — там нет ни одного олдскульного мракобеса; просто арчеводы честно пытаются есть кактус. То, как это у них получается, и к каким выводам они сами приходят — это просто треш и угар.
    Думаю, в RH не собираются феерично убить себя об стенку. Потому до тех пор, пока systemd вызывает такие проблемы, его никто в здравом уме не рискнёт продвигать в продакшен.

  7. > Думаю, в RH не собираются феерично убить себя об стенку.
    Надо отдать им должное — раньше у них была одна Fedora, а нынче они смогли половину дистрибутивов превратить в свою тестировочную площадку :)

  8. >Надо отдать им должное — раньше у них была одна Fedora, а нынче ….
    По-моему здесь не обошлось без мешка денег …..

  9. 2 Rabinovich Боюсь, что дело не в мешке денег, а гораздо хуже — в пламенном энтуазизме миллионов…

  10. Некоторые товарищи выступают за внедрение systemd в своих дистрибутивах ещё по той причине, что почему-то уверены, что если не сделать это сейчас, то потом может оказаться уже поздно. Что в определённый момент вообще нельзя будет собрать мейнстримовый дистрибутив без systemd. И что поэтому лучше переходить на systemd заранее и переписывать под него различные инструменты настройки постепенно, а не когда совсем припрёт. Техническая сторона тут вообще остаётся за бортом.

    Хороший Поттеринг пропагандист, очень хороший…

  11. То есть, автор опуса считает, что systemd появился и активно подхватился далеко не одним дистрибутивом только из-за скорости загрузки? :D

    Всё, других причин не было? :D

  12. 2 Pulfer
    > Хороший Поттеринг пропагандист
    А я о чём? Очень хороший. Почти как дедушка Ленин или Великий Кормчий

  13. 2 AdUser
    Да в общем изначально было ясно, что в так называемом ынтырпрайзе никто не будет тратить сумашедшие деньги на поголовное переучивание персонала. И потому в RHEL никакого Гномошелла как умолчания быть не может.
    Так что давайте поздравим капитана очевидность с присвоением очередного звания майора.

Обсуждение закрыто.