Леннарт Поттеринг представил (https://lists.freedesktop.org/archives/systemd-devel/2018-Ma...) релиз системного менеджера systemd 238 (http://www.freedesktop.org/software/systemd/). Из новшеств можно отметить включение по умолчанию учёта потребления памяти, расширение числа настроек systemd-sysusers, добавление настройки TemporaryFileSystem для переопределения частей ФС разделами tmpfs, обеспечение автоматического монтирования /sys/fs/bpf.Основные изменения:
- Для unit-ов по умолчанию включена опция MemoryAccounting, обеспечивающая учёт потребления памяти при помощи cgroup. По оценке разработчиков в современных ядрах (4.14+) негативное влияние на производительность аккаунтинга через cgroup минимально и данный режим уже готов для включения по умолчанию. Для отключения при сборке можно указать "-Dmemory-accounting-default=false". Учёт потребления ресурсов CPU, ввода/вывода и сетевой активности по-прежнему отключен по умолчанию;
- Добавлена настройка TemporaryFileSystem для переопределения частей реальной ФС при помощи монтирования временных разделов на базе tmpfs. В комбинации с BindPaths и BindReadOnlyPaths новая возможность может применяться для скрытия файлов или каталогов, к которым не должен иметь доступ unit, сохраняя при этом возможность обращения к некоторым путям ниже в дереве директорий. Для скрытия домашней директории и runtime-каталогов может использоваться настройка ProtectHome=tmpfs, которая эквивалентна определению "TemporaryFileSystem=/home /run/user /root";
- В systemd-logind добавлена возможность вызова обработчика закрытия крышки ноутбука при наличии подсоединения к стационарному источнику питания (HandleLidSwitchExternalPower в logind.conf);
- В настройках sysusers.d для пользователя теперь можно указать номер группы в дополнение к цифровому идентификатору пользователя (например, "u username 123:456") или без него (например, "u username -:456");- Настройки к systemd-sysusers теперь могут передаваться в качестве аргумента в командной строке через опцию "--inline";
- Добавлена возможность задания shell для пользователя через sysusers.d (раньше, всегда использовался /bin/sh для root и /sbin/nologin для остальных пользователей);
- Юниты, не являющиеся сервисами, теперь запускаются по умолчанию в режиме KeyringMode=shared, при котором утилиты mount и swapon имеют доступ к ключам в основном хранилище ключей;- Обеспечено автоматическое монтирование /sys/fs/bpf;
- Выполняемые в процессе обновления rpm-пакета скрипты для обновления базы оборудования hwdb, правил udev и каталога с журналами (%udev_hwdb_update, %udev_rules_update, %journal_catalog_update) заменены на пустые заглушки, а данные операции вынесены в триггеры, запускаемые в конце транзакции установки обновления пакета;
- В systemd-sysusers добавлен режим, при котором конфигурация задаётся в командной строке, но не выполняется напрямую, а вначале переносится в файлы конфигурации на диске. Режим полезен для применения в скриптах установки пакетов, в которых нужно создать пользователя до установки принадлежащих ему файлов на диск. Для rpm-пакетов новая возможность представлена в виде макроса
%sysusers_create_package (макросы %sysusers_create и %sysusers_create_inline объявлены устаревшими). Аналогичный макрос (%tmpfiles_create_package) для сохранения настроек на диск добавлен для systemd-tmpfiles;- В systemd-analyze добавлена опция "--global" для работы в контексте глобальной конфигурации пользователя и параметр unit-paths для перечисления путей загрузки unit-а, который можно использовать с опциями "--systemd", "--user" и "--global";
- В триггер udevadm добавлена опция "--settle" ("-w") для завершения работы после наступления любого обрабатываемого события;
- Добавлен новый вызов DBus org.freedesktop.systemd1.Manager.AttachProcessesToUnit, который можно использовать для миграции сторонних процессов в область обработки юнита;
- В systemd-detect-virt реализовано автоматическое определение механизмов виртуализации QNX, сведения о которых могут быть использованы в ConditionVirtualization;
- В юнитах slice теперь можно использовать настройку IPAccounting;
- Добавлена новая сборочная опция "-Dsplit-bin" для определения точки слияния
каталогов bin и sbin;- Добавлена новая сборочная опция "-Dok-color" для определения цвета сообщений с состоянием "OK" в процессе сборки;
- Из-за проблемы с сериализацией юнитов, использующих настройку JoinsNamespaceOf вместе с режимом PrivateNetwork=yes, после установки новой версии systemd и выполнения daemon-reexec требуется перезапуск данных юнитов;
- Изменено поведение systemd-tmpfiles: доступные только на чтение файлы, владельцем которых является root, не будут исключаться из процесса чистки временной директории.
URL: https://lists.freedesktop.org/archives/systemd-devel/2018-Ma...
Новость: https://www.opennet.ru/opennews/art.shtml?num=48211
Для чего нужен учет потребления памяти? В сервисах можно его использовать (перезапускать сервис при определенном потреблении)?
Например, можно учитывать память systemd-httpd, systemd-qrcoded или systemd-journald
Минусуют, наверное, те, кто без этих служб жить не может
> Для чего нужен учет потребления памяти?в будущем введут налог на потреблённую память; системы без учёта потребления памяти будут объявлены вне закона
>> Для чего нужен учет потребления памяти?
> в будущем введут налог на потреблённую память; системы без учёта потребления памяти
> будут объявлены вне законаОтож будет вам Sd-as-a-disService.
Удобно!11
>> Для чего нужен учет потребления памяти?
> в будущем введут налог на потреблённую память; системы без учёта потребления памятиИ вообще, эти ваши приложения за}|{рались: s-d памяти не хватает1111
> в будущем введут налог на потреблённую память; системы без учёта потребления памятиДа это ж баянище, все хостеры давно так делают.
> будут объявлены вне закона
Зачем? Хостеры просто выключают resource hog. Отлично работает. А если не понимает, вместо оверселлинговых параметров ставят минимально гарантированные.
https://www.freedesktop.org/software/systemd/man/systemd.res...
Ну и банально посчитать занимаемую сервисом память, если он дико, бешено форкается.
> Для чего нужен учет потребления памяти?Видел когда-нибудь контейнеры? Типа того же openvz? Ну вот затем, Карл. Только теперь это для вообще всех и без танцев с бубнами вокруг системника. А не только каких-то там хостеров с отдельным кривым ядром, которым ну очень надо, так что изгальнулись.
TL;DR; На локалхосте не сильно нужно.Видимо, systemd пытается реализовать в себе часть функционала windows, связанного со счётчиками производительности. У этой подсистемы есть 2 назначения:
1) Система производит учёт потребления ресурсов ОС, демонов и приложений пользователя, что позволяет:
- динамически выдавать приоритеты тем или иным задачам
- наглядно отображать утилизацию ресурсов и мониторировать процессы во времени.
2) Предоставить API для непривилегированных приложений, которое в свою очередь:
- Позволяет опубликовать свои счётчики мониторинга
- Принимать решения внутри клиентского ПО в случае получения тех или иных данных о загруженности системы или счётчиков мониторинга другого приложения.Линуксу, конечно, не нужен perfmon.exe, ведь уже есть top, htop, iotop и много чего еще. Кроме того, сами cgroups и так позволяют делить процессорное время между задачами неравномерно. Динамика и API - другой момент.
Приведу пример:
Допустим, есть набор приложений на нескольких кластеризированных веб-серверах. Приложение хочет принимать новые соединения от клиентов и выполнять скрипты на узле-1 только в том случае, если на нём есть достаточно выделенных системных ресурсов. В противном случае запрос необходимо реверспроксировать на узел-2 и т.д, производя рендеринг страницы или сбор данных на узле, где доступны ресурсы. По факту исчерпания ресурса на узле приложение хочет передать асинхронную команду в выделенную систему мониторинга, которая также кластеризована и является частью этого же набора приложений со своими требованиями по ресурсам.На windows такое сделать можно с использованием стандартных средств на линуксе необходимо изменить архитектуру приложения. Например, вынести мониторинг на отдельный кластер, написав свою систему контроля за ресурсами узлов приложения, возможно, также выделить внутреннее реверспроксирование и балансировщики на отдельный кластер. Ну или отказаться от части функционала по самомониторированию.
Понимаю, пример искусственный... но он как раз демонстрирует, что функционал на стороне ядра есть давным давно. Есть даже шины IPC/RPC (dbus), но конечное решение всё равно придётся писать самим, потому что на стороне ОС (системы, дистрибутива) функционала не хватает. Докер в этом сильно поможет, чтобы совсем уж не велосипедить, но добавление виртуализации даже контейнерной бывает оправдано не всегда.
С другой стороны, на стороне windows этот функционал, как и всё чего касалось щупальце MS, переусложнён и извращён, поэтому городить отказоустойчивые пулы приложений в IIS-ах, которые имеют доступ (через kerberos) к системным API мониторинга, требует, так сказать, специфических вкусов и предпочтений. Уверен, что в линуксе получится намного лучше.Тем кто осилил мою простыню задам наводящий вопрос. Как вы думаете, зачем внутри systemd есть реализация маленького вебсервера?
> Видимо, systemd пытается реализовать в себе часть функционала windows, связанного со счётчиками
> производительности.Ах, вот у кого openvz содрали beancounters...
Когда ждать systemd osd?
не осилит
> не осилитОно уже жирнее, чем было ядро времен третьей слаки.
> Оно уже жирнее, чем было ядро времен третьей слаки.А первое ядро Linux так и вообще было меньше чем иной hello world. Не хочешь на него вернуться?
Живёт и активно развивается, что не может не радовать. Хотя я не совсем понял про rpm - systemd теперь ещё и пакетный менеджер?
Здорово, правда!?)
Ну да, с RPM это уже явно перебор...даже мне, фанатику systemd, так кажется
Раньше надо думать было, когда дедушки говорили.
Не пробьёт. Перечитай его сообщение - он и сейчас думает, что ему лишь кажется.
Это-то как раз нормально. Во многие пакеты входят макросы rpm, что сильно облегчает жизнь майнтейнерам, а простых пользователей никак не затрагивает.
> Это-то как раз нормально. Во многие пакеты входят макросы rpm, что сильно
> облегчает жизнь майнтейнерам, а простых пользователей никак не затрагивает.майнтейнеры дебиана уже радуются?
> майнтейнеры дебиана уже радуются?Ну проголосуют раза три-четыре, придут к выводту, что pacman и slackpkg недостаточно фичастые и решат мигрировать на rpm+dnf. Делов-то. Как будто впервой.
А если ОЧЕНЬ повезёт, то сольются с девуаном и выкинут systemd обратно.
>А если ОЧЕНЬ повезёт, то сольются с девуаном и выкинут systemd обратно.Кто ж им дастЪ?! (С)
Не для того шляпы демьян нагибали ... :(
> майнтейнеры дебиана уже радуются?Для них ничего не изменилось.
Что такого, прибьют rpm (и соответственно DNF) к systems. Один фиг и то, и то под надежным контролем RH.
…и потом системду выкинут из уютненького рача! Жду с нетерпением.
Обновил на арче сей пакет: результат перманентный сегфолт памяти при загрузке, видимо " новые скрипты" черезчур Новые, пришлось откатываться с помошью chroot'a. :/
может, просто нефиг ставить пакеты из тестинга?
Лучше не ставить systemd и все проблемы волшебным образом исчезнут. (уже лет 6 как, ни единого^W ни одной проблемы, ага)
> …и потом системду выкинут из уютненького рача! Жду с нетерпением.история подсказывает, что скорее арч перейдёт на rpm
Кроме шуток, но в месте с исходниками systemd распространяется spec-файл для сборки rpm-пакетов. Речь про изменения в этом файле.
> Кроме шуток, но в месте с исходниками systemd распространяется spec-файл для сборки
> rpm-пакетов. Речь про изменения в этом файле.Нет, вот в этих:
https://github.com/systemd/systemd/blob/a166e13771f308973d7b...
https://github.com/systemd/systemd/blob/a166e13771f308973d7b...
По суте он прав ))))))))))) :The contents of this are an example to be copied into systemd.spec.
Обнаружил, что "reboot -f" в systemd-содержащих помойках работает не совсем так, как привычно думать. Вернее, он крайне хреново работает.
Но хотя бы kill -9 1 работает надежно?
Неа, не работает. ☹
Просто у него теперь заикание добавилось :)-f, --force
Force immediate halt, power-off, or reboot. When specified once, this results in an immediate but clean shutdown by the system manager. When
specified twice, this results in an immediate shutdown without contacting the system manager. See the description of --force in systemctl(1)
for more details.
> When specified twiceЭто гениально, я считаю :)
> Это гениально, я считаю :)Ну не знаю, вроде норм. Всякие -v -vv -vvv приучили.
P.S. Я - хейтер.
А для соместимости с пердыдущеми версиями могли бы и оставить поведение --force. И добавить --force--manager какой-нибудь
Ура!
Самая лучшая разработка!
да, openrc отличная замена systemd
Скорее systemd является никудышной заменой openrc.Второй появиля сильно раньше.Да и написан людьми в отличии от ...
Сколько можно уже эту крышку ноутбука мучать!Ничего она не должна делать, кроме как закрывать ноутбук.
Если мне вдруг захочется спящий режим или выключить, я это как-нибудь сам сделаю. Не нужны там никакие обработчики.
ленчик лучше знает, что ты хочешь! и не спорь!
Но я хочу просто закрывать ноутбук, убирать его в сумку и идти дальше, а не нажимать ещё какие-то кнопки. Можно?Без systemd для этой цели приходилось держать отдельный демон acpid.
> Без systemd для этой цели приходилось держать отдельный демон acpid.А теперь будешь держать отдельный systemd-acpid и ещё пару примонтированных файловых систем. Сам acpid сдохнет (надеюсь, нет). А потом Сиверс продаст ноут, возможность выпилят как неиспользуемую разработчиками, а acpid будет уже мёртв.
> А теперь будешь держать отдельный systemd-acpidНе буду: функционал обработки событий ACPI находится в systemd-logind, ответственном за виртуальные консоли и пользовательские сессии.
> функционал обработки событий ACPI находится в systemd-logind, ответственном за
> виртуальные консоли и пользовательские сессии.И где в этом логика?
А кто здесь ожидал логики? Поттеринг (П) - логика (Л).
>> функционал обработки событий ACPI находится в systemd-logind, ответственном за
>> виртуальные консоли и пользовательские сессии.
> И где в этом логика?Управление состоянием сессии же. И терминала... Гм. Хотя конечно это только часть всего acpid.
Интересно, что будет, если вначале закрыть крышку ноута, а потом отключить питание. По идее , результат должен быть такой же, как и закрытие крышки с отключенным питанием.
> Интересно, что будет, если вначале закрыть крышку ноута, а потом отключить питание.
> По идее , результат должен быть такой же, как и закрытие
> крышки с отключенным питанием.Если ноут уснёт при закрытии крышки, на отключение питания он уже не отреагирует.
А как работает "гибридный сон" - сначала сон, потом глубокий сон? Он из sleep'а потом сразу в hibernate переходит, не пробуждаясь?
Ноут делает все, чтобы уйти в гибернацию, но в сам момент ухода вместо полного отключения питания засыпает. Таким образом, если сон продлится недолго - восстановление будет быстрым, а если долго - не потеряются данные.
Жду systemd-x11d, systemd-kerneld и можно слезать с Linux.
> Жду systemd-x11d,systemd-waylandd же.
пора уже организовывать праздник ждунов
Пaцaны, там уж две недели как вышла новая бета версия Sysvinit (первое мажорное обновление за 8 лет, Карл!). Распишите кто-нибудь, мне пока не до этого.
Отличненько. А как там, до кучи, поживают openrc и bsd rc?
В bsd rc наконец сделали rc.conf.d.
Конфигурацию разбитую на куски стало сильно проще читать и править.
А чтобы админы не заскучали sysrc не умеет корректно работать с rc.conf.d.
> В bsd rc наконец сделали rc.conf.d.Если из сравнительн недавнего, то ЕМНИП, добавили поддержку {LOCALBASE}/etc/rc.conf.d
/etc/rc.conf.d уже давно
> Date: Mon Oct 2 18:50:58 2006 +0000
> Pull in /etc/rc.conf.d/network so that ifconfig_<if> variables can be.
.> Конфигурацию разбитую на куски стало сильно проще читать и править.
> А чтобы админы не заскучали sysrc не умеет корректно работать с rc.conf.d..
.
> Date: Tue Nov 3 19:57:12 2015 +0000
> Add sysrc(8) support for "rc.conf.d" file(s) when given "-s name" to
> indicate service(8) script. While here, add "-l" option for listing theДа и сам sysrc - 1000 строчный костылик на sh.
Ушли с subversion на git, немного причесали bootlogd, логгирование на несколько консолей (если их несколько), /dev/initctl moved to /run/initctl, убраны излишние sleeps при shutdown, automatically spawn agetty on kernel consoles.
По ссылке только бета.
Я и говорил про бетку. Просто, нужно принять во внимание разные подходы к разработке ПО у разработчиков systemd и sysvinit.
У меня один вопрос : когда наконец станет доступен к подгрузке модуль linux.ko ?
К чему эти полумеры?
Давно доступен:
kexec -l /boot/vmlinuz --reuse-cmdline
systemctl kexec
>модуль