О пузометрии: спустя почти полгода
О пузометрии: спустя почти полгода
Апрель 29, 2013
Когда речь заходит о systemd, сторонники этого менеджера инициализации говорят о массе его преимуществ по сравнению и с древним sysvinit, и с upstart, разработанным для Ubuntu.
Многие из этих преимуществ выглядят субъективными. Например, логичность внутреннего устройства системы: логика, как известно, бывает разная, как минимум, аристотелева, неаристотелева и женская. Другие, скажем, контроль над выполнением фоновых процессов, обычно не могут быть оценены конечным пользователем (да и не очень его волнуют). Третьи же, такие, как управление службами, в systemd если и имеют преимущества по сравнению с аналогами из sysvinit и upstart, то только в «многобуквии» (см., например, ) и более ином синтаксисе. В чём следует видеть неустанную заботу о пользователе, дабы он не разучился читать (новую документацию) и писать (точнее, набирать на клавиатуре).
Так что фактически остаётся единственный момент для сравнения, поддающийся количественной оценке – скорость загрузки системы. Все резонные люди понимают, что
1. момент этот несущественный (нормальная UNIX-машина загружается много если раз в сутки), и
2. не имеет никакого отношения к скорости выполнения реальных задач.
Тем не менее, сторонники systemd постоянно козыряют этим преимуществом. Провоцируя своих оппонентов на очередные фаллометрические тесты.
Отдал дань фаллометрическому движению и автор этих строк, сначала в виде отрывочных наблюдений за скоростью загрузки, а затем и целенарправленного сравнения оной в дистрибутиве openSUSE, благо он вплоть до версии 12.2 включительно перед инициализацией системы. Результаты оказались, мягко говоря, несколько не соответствующими заявлениям о бесспорном преимуществе systemd над sysvinit (столь многочисленным, что от ссылок воздержусь и предлагаю воспользоваться поиском).
По установке Ubuntu появилось желание продолжить фаллометрические состязания – уже в сравнении systemd с upstart, в качестве одного из преимуществ которой также декларируется несравненная скорость загрузки. С этой целью были использованы два идентичных накопителя SSD SanDisk Extreme 120 GB. На первом была установлена openSUSE 12.3 с systemd (в этой версии возможность простого переключения на sysvinit ликвидирована), на втором – Ubuntu 13.04 с upstart. В обоих случаях использовалась файловая система ext4. Никаких оптимизаций загрузки ни в той, ни в другой системах не проводилось – загружались службы, предусмотренные при первичной инсталляции.
Усреднённые результаты по десяти замерам времени от нажатия Enter в меню GRUB до приглашения к авторизации (в KDM и LightDM для openSUSE и Ubuntu, соответственно) для каждой из систем следующие:
• openSUSE с systemd – 7 секунд;
• Ubuntu с upstart – 8 секунд.
В процентном отношении выигрыш systemd по отноешнию к upstart cсоставляет внушительные 14%. Однако не будем забывать, во-первых, о том, что в абсолютных цифрах речь идёт об 1 (одной!) секунде. Во-вторых, процедура POST на моей машине занимает 18 секунд, на фоне которых та самая секунда выигрыша просто теряется.
Самое же главное – в-третьих: после авторизации и последующей загрузки среды Ubuntu полностью готова к работе. На примере Xubuntu, где штатно предусмотрено сохранение сеанса (в Ubuntu это надо прикручивать, чего я ещё не сделал), можно видеть, что внешний винчестер с USB-интерфейсом смонтирован, а в браузере открыты все интернет-страницы из прошлого сеанса. В openSUSE же для монтирования внешнего винта требуется щёлчок на его имени в файловом менеджере (хотя опция автоматического монтирования сменных накопителей установлена). А браузер даёт ошибку загрузки страниц.
То есть скорость загрузки системы при использовании systemd – кажущаяся: приглашение к авторизации появлятся до старта всех используемых служб, подобно тому, как это делается в Windows. Казалось бы, ничего страшного? Однако на практике это выливается в ряд мелких, но очень раздражающих неудобств: необходимости повторной загрузки документов, открытых с внешнего винчестера в текстовом редакторе, ручном восставновлении torrent-сессии, обновлении страниц в браузере, а иногда и его перезапуске. Вероятно, systemd как-то можно настроить, чтобы избежать такого безобразия, но upstart ни в какой настройке не нуждается (как, к слову сказать, и sysvinit). Да и абсолютное время загрузки при этом, видимо, будет иным...
Любопытства ради я померял и время загрузки Xubuntu, которая установлена у меня на традиционном винчестере (Seagate Barracuda, 500 ГБ, 7200 об./мин.). Оно составило 11 секунд, то есть примерно в полтора раза больше, чем старт системы с SSD, вне зависимости от схемы инициализации. То есть основной выигрыш в скорости загрузки обеспечивается вовсе не последней, а исключительно «железом». Что, собственно, было ясно из общих соображений (товарищ майор, поздравляем вас с присвоением очередного звания).