LINUX.ORG.RU
ФорумTalks

Популярно про systemd и Леннарта Поттеринга


4

3

После нескольких обсуждений и многочисленных критических высказываний в адрес systemd, у меня сложилось впечатления, что не все понимают в вопросе, о котором спорят. Как правило, против Поттеринга приводятся несущественные аргументы или эмоции, тогда как все аргументы уже давно им были высказаны безаппеляционно и по-существу (http://0pointer.de/blog/projects/why.html). Остановимся вкратце на killer-фиче «Socket-based Activation».

Традиционно в sysvinit извещение init о готовности сервиса был организован с помощью fork. Возьмем для примера rsyslogd и посмотрим, что происходит при его загрузке.

1)Init запускает bash, bash интерпретирует файл /etc/init.d/rsyslogd

2)Запускается бинарный файл /usr/sbin/rsyslogd

3)rsyslogd инициализирует себя, и в момент готовности к работе он делает fork. С этого момента вся деятельность происходит в дочернем процессе, а родительский немедленно умирает. Это делается для оповещения процесса bash, ожидающего возврата управления.

Если не обращать внимание на чудовищный по накладным расходам пункт 1, то, как видно, остается еще один замедляющий загрузку момент.

Системный вызов fork — один из самых затратных в ядре, поскольку, не смотря на copy-on-write, для дочернего процесса копируется практически все. Использование его всего лишь для оповещения — это как стрельба из пушки по воробьям. Здесь как нельзя лучше подходит выражение «broken by design». Такой способ запуска демонов считается классическим. Unix-way никто не отменял, просто глупо холить и лелеять подобные дурацкие традиции.

В systemd пункт 1 отсутствует полностью, а вместо fork() используется простая и незатратная посылка сообщения через сокет с помощью sendmsg.

Не нужно быть семи пяди во лбу, чтобы осознать преимущества новой системы инициализации. Я думаю, демоны, которые не перейдут на systemd, довольно быстро умрут естественной в этом случае смертью.

★★★★★
Ответ на: комментарий от drBatty

потому ВСЕМ будут выдавать велосипед от Леннарта?

ога, сейчас ВСЕМ выдают велосипед от Космонавта

А если у меня не падают сервера раз в месяц

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

Reset ★★★★★
()
Ответ на: комментарий от ttnl

Если перечисленное по ссылке (http://0pointer.de/blog/projects/why.html) тебе не видится причинами объективными, то тут я ничем помочь не могу.

Мне это видится передёргиванием фактов. Многое из перечисленного в SysV есть, просто требует изменения скриптов, другое вообще не должно быть в init. Кроме того, автор вообще отказался рассматривать BSD init, который явно лучше чем SysV и ничего не сказал об OpenRC. Так что можешь своей ссылкой не трясти.
Вот например написано, что SysV якобы не монтирует файловые сисетемы и не умеет fsck. Но это же не так. Он считает, что надо fsck встроить в один блоб с инитом?

Да, у SystemD есть несколько преимуществ, но по сравнению с чудовищной монструозностью они меркнут.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Reset

в серьезных проктах

Фрейдовская очепятка.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от ttnl

Ещё кстати там написано, что у systemd есть отдельный саппорт — а это как бы намекает, насколько чудовищна эта хрень. А он в преимущества записал.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Reset

ога, сейчас ВСЕМ выдают велосипед от Космонавта

это только на десктопах. на серверы (серьёзные) бубунты ставят только ССЗБ.

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

там, где это нужно, этот велосипед есть в коробке. И ты это знаешь. Это не повод пихать его в любую дырку, и ты тоже это знаешь.

drBatty ★★
()
Ответ на: комментарий от drBatty

на серверы (серьёзные) бубунты ставят только ССЗБ.

ога ога, на серверах гугла и яндекса стоит, конечно же, слака.

Reset ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Разумеется, костыль типа monit гораздо лучше :D

конечно лучше. У меня вот его тупо нет. а вот у тебя - БУДЕТ. Как и 100500 ненужных тебе костылей, которые идут с этим твоим systemd. В этом-то и проблема, и нарушение UNIX-way. Посмотри на WINRar - там тоже дохрена чего ненужного есть, и всё через ж реализовано. Начиная от шифрования, и заканчивая собственно сжатием, из 90х годов прошлого века. И вся эта древняя НЁХ из винрара не выпиливается, ибо автору давно плевать. А юзеры вынуждены жрать это УГ мамомнта.

drBatty ★★
()
Ответ на: комментарий от Reset

ога ога, на серверах гугла и яндекса стоит, конечно же, слака.

причём тут слака, уважаемый? слака она заточена для десктопа, зачем её перепиливать, если уже есть готовые решения, про которые ты разумеется знаешь. И это не убунта.

drBatty ★★
()
Ответ на: комментарий от Xenius

Мне это видится передёргиванием фактов.

да пусть даже это правда. Сравни в конце 90х годов winrar vs tar - можно было-бы точно такую же табличку нарисовать, и даже больше. Вот только tar и сегодня использует самые совершенные методы сжатия, а winrar - каким он в 90х был. такой и сейчас.

Вот например написано, что SysV якобы не монтирует файловые сисетемы и не умеет fsck. Но это же не так. Он считает, что надо fsck встроить в один блоб с инитом?

SysV действительно не умеет. Ну и что? Это не нужно. Как и всё остальное. И весь systemd.

drBatty ★★
()
Ответ на: комментарий от drBatty

Ну, для начала, он и у тебя есть. В sysvinit. Ты им даже пользуешься, для getty, когда logout делаешь. Но то такое. Так как он не функционален в достаточной степени, у тебя скорее всего еще есть cron/monit, который чекает тот же sshd на активность :]

Если говорить лично обо мне, у меня он был в лице cron+костыльного скрипта. Так как я пользуюсь systemd и для пользовательской сессии, то функционал рестарта используется вообще постоянно. Упал synergy? Рестартанем. Упал емакс? Рестартанем. Упал скайп? Рестартанем. Упали апплеты? Рестартанем. Итд :]

Для системы это как минимум sshd, дабы не было неожиданностей.

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Ну, для начала, он и у тебя есть. В sysvinit. Ты им даже пользуешься

ты упоролся. нет у меня его. Патрег не одобяе. Вот можно собрать: http://slackbuilds.org/repository/13.37/system/monit/

Так как он не функционален в достаточной степени, у тебя скорее всего еще есть cron/monit, который чекает тот же sshd на активность :]

ты не поверишь, но sshd у меня НЕ ПАДАЕТ. А уж если упадёт, то никакой monit ему не поможет.

Так как я пользуюсь systemd и для пользовательской сессии, то функционал рестарта используется вообще постоянно. Упал synergy? Рестартанем. Упал емакс? Рестартанем. Упал скайп? Рестартанем. Упали апплеты? Рестартанем. Итд :]

маздай, такой маздай...

Для системы это как минимум sshd, дабы не было неожиданностей.

неожиданности рестартом не лечатся... Это паллиатив.

drBatty ★★
()
Ответ на: комментарий от drBatty

У меня вот его тупо нет. а вот у тебя - БУДЕТ.

У меня монита тоже нет (и не будет), я так понял, что ты про функционал рестарта написал.

маздай, такой маздай...

Это современный линакс, что уж тут поделаешь. Писал бы поцтеринг, может быть и не падало бы

ты не поверишь, но sshd у меня НЕ ПАДАЕТ. А уж если упадёт, то никакой monit ему не поможет.

неожиданности рестартом не лечатся... Это паллиатив.

okay.jpg

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Вот только tar и сегодня использует самые совершенные методы сжатия

Лолшто?

man методы сжатия информации man tar

drBatty ★★
()
Ответ на: комментарий от vasily_pupkin

Это современный линакс, что уж тут поделаешь. Писал бы поцтеринг, может быть и не падало бы

у меня Slackware от 2012-09-28. Ничего не падает. ЧЯДНТ?

drBatty ★★
()
Ответ на: комментарий от Reset

Проблемы безопасности решаются не так

Конечно. Неспеша, спокойно, в рабочее время которое непременно днём и программистом который непременно один. Весь мир подождёт. Это же серьёзная компания.

Падение раз в месяц это стабильность или нестабильность?

Ты то сам как считаешь!? Неужели у тебя еще возникает вопрос по этому поводу?

Да, это так. Сложный софт всегда идет с watchdog'ом в комплекте

Брехня. К тому же, если запихивать в систэмГэ всё что используется там в быдлокодинге, то система инициализации и так превратившаяся в Гэ, станет еще более Гэ.

Если ты этого не замечал, то это говорит об отсутствии у тебя реального опыта.

Предпочитаю не гулять там где работают быдлокодеры в якобы серьёзных компаниях, о которых ты говоришь.

chinarulezzz ★★
()
Ответ на: комментарий от drBatty

не думаю.

Ты только думаешь, а я _знаю_

скорее RH

На кой он там? Ты думаешь, что в компаниях уровня гугла и яндекса нет своих высококлассных специалистов, чтобы обеспечить поддержку своими силами?

Reset ★★★★★
()
Ответ на: комментарий от chinarulezzz

Конечно. Неспеша, спокойно, в рабочее время которое непременно днём и программистом который непременно один. Весь мир подождёт. Это же серьёзная компания.

Сервис передернулся меньше чем за секунду, всё работает, никто ничего не ждет, почему он передернулся решаем в спокойной обстановке. Именно так и обстоят дела в серьезных компаниях. Если у тебя что-то ломается в праздники и нет системы автоматического восстановления, то админы тебе яйца оторвут по окончанию праздников, а начальство лишит премии и правильно сделает!

Ты то сам как считаешь!? Неужели у тебя еще возникает вопрос по этому поводу?

Тогда стабильного софта вообще нет.

Брехня.

типичный пример: mysql

Предпочитаю не гулять там где работают быдлокодеры в якобы серьёзных компаниях, о которых ты говоришь.

Ога ога, давай админь дальше локалхост и пиши хелловорлды.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Именно так и обстоят дела в серьезных компаниях.

а до этого - бажный и нестабильный софт продолжает быть пятой колонной.

Я то думал серьзная компания делает нечто вроде гугла, где программист не один и не два, где могут оставаться и в компании, и зарплата позволяет им работать в какое время суток они хотят, и в случае ЧП - когда потребуется.

А ты говоришь о ООО «Рога и Копыта», с временным решением которое называют жизненно необходимым настолько, что требует включения в систему инициализации и использования для всего софта.

Тогда стабильного софта вообще нет.

Повод запихивать специализированный костыль в инит?

типичный пример: mysql

Зачем пример, если ты сказал «всегда»? «Сложный софт всегда идёт с watchdog'ом... » Так всегда, или специализированно и нуждается в конкретике и примерах?

Ога ога, давай админь дальше локалхост и пиши хелловорлды.

Типичный аргумент:

- Зачем эта функция в ините!?

- Локалхост! Хелловорд! Не понять!

chinarulezzz ★★
()
Ответ на: комментарий от chinarulezzz

Я то думал серьзная компания делает нечто вроде гугла, где программист не один и не два, где могут оставаться и в компании, и зарплата позволяет им работать в какое время суток они хотят, и в

Да даже если 10000 программистов. Демон X писал Вася, чтобы его починил Петя ему придется сутки сидеть и вникать в суть. Если Петю разбудят в 3 часа ночи, то думашь, он вообще сможет что-либо сделать? Пока Петя чинит проблему на сервере N тоже самое случается на сервере N+1 и теперь вообще всё стоит раком. Так нужна или не нужна система автоматического восстановления? По-моему, ответ очевиден.

использования для всего софта.

про _весь_ софт я не говорил

случае ЧП - когда потребуется.

ЧП надо минимизировать, если можно сделать систему автоматического восстановления, то её _надо_ делать. Ты хочешь просыпаться ночью и что-то чинить? Я не хочу!

Повод запихивать специализированный костыль в инит?

Да. Тем более использовать его для _всех_ демонов никто не заставляет.

Зачем эта функция в ините!?

Чтобы 100500 раз не реализовывать 100500 одинаковых костылей. Тем более эта функция _уже_ есть в ините в 99.99% современных линукс инсталляций (0.01% остается на маргинальщину и прочую шлакварь, которая по прежнему живет в 90х)

Reset ★★★★★
()
Последнее исправление: Reset (всего исправлений: 1)
Ответ на: комментарий от Reset

Так нужна или не нужна система автоматического восстановления?

в ините? Когда она нужна одному-двум приложениям в ООО «Рога и копыта»?

По-моему, ответ очевиден.

Конечно, очевиден.

Ты хочешь просыпаться ночью и что-то чинить? Я не хочу!

И я не хочу. Более того - и не буду.

Повод запихивать специализированный костыль в инит?

Да.

Нет. Это лишь увеличивает сложность системы, её отладку, простоту и нарушает принципы KISS.

Чтобы 100500 раз не реализовывать 100500 одинаковых костылей.

и тогда будет один костыль помещённый в init?

Тем более эта функция _уже_ есть в ините в 99.99% современных линукс инсталляций

Опять брехня. И кстати, есть в ините - и есть в систэмГэ - две большие разницы. В ините я например управляю всем процессом загрузки, а в монолите поццеринга надо в Си-код лезть. Поболее простыни чем шелл-скрипты будут.

chinarulezzz ★★
()
Ответ на: комментарий от chinarulezzz

Нет. Это лишь увеличивает сложность системы, её отладку, простоту и нарушает принципы KISS.

Увеличивает совсем незначительно, остальное сказанное бред.

и тогда будет один костыль помещённый в init?

Да и это очень хорошо, так как в совокупности только упрощает систему.

Опять брехня.

Сейчас везде убунта ну или в крайнем случае centos/rhel, а там upstart.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Ты только думаешь, а я _знаю_

плохо знаешь

Ты думаешь, что в компаниях уровня гугла и яндекса нет своих высококлассных специалистов, чтобы обеспечить поддержку своими силами?

А что, единственный плюс, который ты можешь найти в RH - это поддержка?

maloi ★★★★★
()
Ответ на: комментарий от maloi

плохо знаешь

хорошо знаю

А что, единственный плюс, который ты можешь найти в RH - это поддержка?

по сравнению с centos - да

Reset ★★★★★
()
Ответ на: комментарий от Reset

хорошо знаю

если бы хорошо знал, не распространял бы 4.2

по сравнению с centos - да

это те ребята, которые перекомпилировать редхатовские пакеты в течение почти года не могли? нет уж, спасибо.

maloi ★★★★★
()
Ответ на: комментарий от Reset

Это лишь увеличивает сложность системы

Увеличивает

только упрощает систему.

так ты определись. Или шизофреничненькое: Увеличивает незначительно а в совокупности упрощает? :D

Сейчас везде убунта ну или в крайнем случае centos/rhel, а там upstart.

хорошо что не систэмГэ. Кстати Дебиан, Генту. Везде можно сделать рестарт сервиса если хочется. И никогда это не было суперфичей. Правда апологеты-гэ-любители всё воспринимают как прорыв.

chinarulezzz ★★
()
Ответ на: комментарий от chinarulezzz

Или шизофреничненькое: Увеличивает незначительно а в совокупности упрощает? :D

Да, так и есть, инит усложняется, а система упрощается.

Кстати Дебиан, Генту

Первое не дистрибутив, а пакетная база, в текущий момент для бубунты, а второе пригодно разве что для десктопа маргинала.

Reset ★★★★★
()
Ответ на: комментарий от Reset

В гугле или яндексе работаешь?

ты, видимо, хочешь сказать, работаешь и там и там на полставки?

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

maloi ★★★★★
()
Ответ на: комментарий от Reset

Первое не дистрибутив, а пакетная база, в текущий момент для бубунты, а второе пригодно разве что для десктопа маргинала.

facepalm.svgz

maloi ★★★★★
()
Ответ на: комментарий от Reset

а я где-то утверждал, что яндекс её не использует?

ты же говорил, что ни RH, ни слака, ни генту в яндексе и гугле не используются, и именно убунту - используется. так что же ты хотел сказать в итоге?

maloi ★★★★★
()
Последнее исправление: maloi (всего исправлений: 1)
Ответ на: комментарий от maloi

ты же говорил, что ни RH, ни слака, ни генту в яндексе и гугле не используются, и именно убунту - используется. так что же ты хотел сказать в итоге?

Чё? Я утверждал только, что используется убунта.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Да, так и есть, инит усложняется, а система упрощается.

если элемент множества образующий систему усложняется - то и система в целом усложняется. Тем более усложняется такими костылями.

Первое не дистрибутив, а пакетная база

Ложь.

debian.org -> Debian — это свободная операционная система (ОС) для вашего компьютера.

а второе пригодно разве что для десктопа маргинала.

Ложь. http://www.gentoo.org/main/en/sponsors.xml

Вообще, почему ты такой звездюк? Ни одно слово из того что ты говоришь не является правдой.

chinarulezzz ★★
()
Ответ на: комментарий от chinarulezzz

если элемент множества образующий систему усложняется - то и система в целом усложняется.

Только в нашем случае при усложнении одного элемента мы убираем десяток, поэтому общая сложность уменьшается.

Тем более усложняется такими

Тебе домашнее задание написать простейший watchdog. Мы посмотрим код и посмеемся над эти «усложнением».

костылями.

Возможно, костыль, но реальная жизнь такова, что от них не уйдешь.

debian.org -> Debian — это свободная операционная система (ОС) для вашего компьютера.

Это то что хотели сделать разработчики дебиана, но это не то, что у них получилось.

Ложь. http://www.gentoo.org/main/en/sponsors.xml

И?

Вообще, почему ты такой звездюк? Ни одно слово из того что ты говоришь не является правдой.

4.2

Reset ★★★★★
()
Последнее исправление: Reset (всего исправлений: 2)
Ответ на: комментарий от vasily_pupkin

Ничего не делаешь?

ага. а у меня ничего и не падает. В отличие от.

drBatty ★★
()
Ответ на: комментарий от Reset

Ты только думаешь, а я _знаю_

ну дык давай пруфы, раз знаешь...

На кой он там? Ты думаешь, что в компаниях уровня гугла и яндекса нет своих высококлассных специалистов, чтобы обеспечить поддержку своими силами?

нет. Я думаю, у них достаточно мозгов, что-бы не перепиливать бубунту, а запилить свой линух с бледжеком и шлюхами, или юзать RH с чужими. А вот трахаться с бубунтами и федорами тупо невыгодно.

drBatty ★★
()
Ответ на: комментарий от Reset

Сервис передернулся меньше чем за секунду

э... ты вообще не понимаешь, что такое ПАДЕНИЕ СЕРВИСА? Если он ВЫСОКОНАГРУЖЕННЫЙ, и на нём висят 100500 клиентов? Не? Или ты про свой локалхост с загрузкой «я и моя кошка»?

Если у тебя что-то ломается в праздники и нет системы автоматического восстановления, то админы тебе яйца оторвут по окончанию праздников, а начальство лишит премии и правильно сделает!

facepalm

drBatty ★★
()
Ответ на: комментарий от Reset

при усложнении одного элемента мы убираем десято

что именно мы убрали?)

Тебе домашнее задание написать простейший watchdog. Мы посмотрим код и посмеемся над эти «усложнением».

Что ты этим хотел сказать?

Возможно, костыль, но реальная жизнь такова, что от них не уйдешь

Жизнь инвалида. И это тянут в линукс как универсальное решение. Омайнгот.

но это не то, что у них получилось.

Тебе как неразработчику и непользователю дебиан виднее?

И?

И ложь.

4.2

Вот снова ;)

chinarulezzz ★★
()
Ответ на: комментарий от Reset

Да даже если 10000 программистов. Демон X писал Вася, чтобы его починил Петя ему придется сутки сидеть и вникать в суть. Если Петю разбудят в 3 часа ночи, то думашь, он вообще сможет что-либо сделать? Пока Петя чинит проблему на сервере N тоже самое случается на сервере N+1

ты точно админ локалхоста - если вася поломал в праздники свой демон, то петя его просто тупо откатит на предпоследнюю ревизию, забив на пьяный пуш этого твоего васи. И делать это петя и вася будут на тестовом сервере, потому клиенты даже ничего и не узнают. Или ты думаешь, что вася в новый год придумает НЁХ, и без всякого тестирования запустит в продакшен как подарок на НГ? Оригинальная у вас контора...

ЧП надо минимизировать, если можно сделать систему автоматического восстановления, то её _надо_ делать. Ты хочешь просыпаться ночью и что-то чинить? Я не хочу!

восстановления ЧЕГО? убитого HDD? тут твой костыль не поможет. Или восстановление после того, как твой коллега нажрался в жоппу и всякую хрень пушит в продакшен? ВНЕЗАПНО - от этого тоже нет защиты.

Чтобы 100500 раз не реализовывать 100500 одинаковых костылей. Тем более эта функция _уже_ есть в ините в 99.99% современных линукс инсталляций (0.01% остается на маргинальщину и прочую шлакварь, которая по прежнему живет в 90х)

поковыряй костыли - они РАЗНЫЕ.

drBatty ★★
()
Ответ на: комментарий от drBatty

ну дык давай пруфы, раз знаешь...

Ubuntu 12.04 InstallFest в Москве (19 мая, МИЭМ)

Я думаю, у них достаточно мозгов, что-бы не перепиливать бубунту

Чего там перепиливать? Собственный образ с нужным набором пакетов с помощью debootstrap делается за 5 минут.

а запилить свой линух

На кой?

или юзать RH с чужими

Чем оно лучше бунты на сервере?

А вот трахаться с бубунтами и федорами тупо невыгодно.

С федорой всё ясно, но в чем заключается трах с убунтой, особенно в LTS редакции?

Reset ★★★★★
()
Ответ на: комментарий от Reset

Только в нашем случае при усложнении одного элемента мы убираем десяток, поэтому общая сложность уменьшается.

щито? мы добавляем one more систему мониторинга (кстати, она может например зайти на tcp-сокет и проверить, что проходит простейший echo тест, или нет?), ибо уследить, что там внутри сервиса происходит systemd не сможет никак, и убрать внутренние сервисы для проверки состояния из сложной системы все равно нельзя.

maloi ★★★★★
()
Ответ на: комментарий от drBatty

если вася поломал в праздники свой демон

Почему Вася сломал? Демон сам сломался, так как в нем была ошибка, которую не нашли в процессе тестирования.

восстановления ЧЕГО?

Упавшего демона.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Кстати Дебиан, Генту

Первое не дистрибутив, а пакетная база, в текущий момент для бубунты

ты точно упоротый...

drBatty ★★
()
Ответ на: комментарий от maloi

мы добавляем one more систему мониторинга

Это называется не мониторинг, а watchdog. Мониториг, естественно, тоже нужен.

кстати, она может например зайти на tcp-сокет и проверить, что проходит простейший echo тест, или нет?

А это на кой? Для 99.99% use-case'ов достаточно проверить существование процесса. Сложную логику надо выносить уже в мониторинги.

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.