Книга: Священные войны мира FOSS
О пузометрии
О пузометрии
Ноябрь 19, 2012
С самого появления менеджера инициализации, именуемого 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?
Правда, убедить в чём-то приверженцев этого менеджера инициализации ничуть не легче, чем читателя Шекспира – в том, что Ричард Третий...
А вот причины этого явления заслуживают отдельного этнографического исследования.