Validation failed
*** Errors validating /srv/www.debian.org/www/intro/cn.ru.html: *** Line 204, character 88: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 205, character 7: end tag for "FORM" which is not finished Line 207, character 97: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 208, character 7: end tag for "FORM" which is not finished Line 210, character 134: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 211, character 7: end tag for "FORM" which is not finished Line 213, character 63: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 214, character 7: end tag for "FORM" which is not finished Line 216, character 56: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 217, character 7: end tag for "FORM" which is not finished Line 219, character 51: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 220, character 7: end tag for "FORM" which is not finished Line 222, character 54: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 223, character 7: end tag for "FORM" which is not finished Line 225, character 112: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 226, character 7: end tag for "FORM" which is not finished Line 228, character 56: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 229, character 7: end tag for "FORM" which is not finished Line 231, character 62: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 232, character 7: end tag for "FORM" which is not finished Line 234, character 57: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 235, character 7: end tag for "FORM" which is not finished Line 237, character 102: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 238, character 7: end tag for "FORM" which is not finished Line 240, character 65: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 241, character 7: end tag for "FORM" which is not finished Line 243, character 56: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 244, character 7: end tag for "FORM" which is not finished Line 246, character 112: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 247, character 7: end tag for "FORM" which is not finished Line 249, character 57: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 250, character 7: end tag for "FORM" which is not finished Line 252, character 61: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 253, character 7: end tag for "FORM" which is not finished Line 255, character 58: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 256, character 7: end tag for "FORM" which is not finished Line 258, character 92: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 259, character 7: end tag for "FORM" which is not finished Line 261, character 86: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag Line 262, character 7: end tag for "FORM" which is
Re: Соотнесение процесса и поля QoS
Dmitry Alexandrov <321...@gmail.com> wrote: > Pavel Volkov wrote: >> Чтобы systemd использовал и монтировал вторые, надо добавить аргумент ядру: >> systemd.unified_cgroup_hierarchy=1 > > Ну да, «unified» — это как раз для первых и вторых разом. Ай, невнятно написал. В смысле, каталог unified в /sys/fs/cgroup/ будет существовать только если к-группы используются гибридно. Короче, не обращайте внимание на это предложение. signature.asc Description: PGP signature
Re: Соотнесение процесса и поля QoS
Pavel Volkov wrote: > On вторник, 17 сентября 2019 г. 14:33:39 MSK, Dmitry Alexandrov wrote: >> Но есть и одно большое но: Систем-д. Он предъявляет монопольное право на >> распоряжение к-группами. Оно и на первые предъявлял, просто net_cls от него >> был свободен. А ко вторым, как вы знаете, все контроллеры слили в один, так >> что вот так по-простому: ...уже не сделаешь. > > И ещё я не учёл 1 обстоятельство. Конечно же, так можно сделать. Ну да, воспользовавшись первыми. ;-) > Ядро позволяет оставить контроллеры cpuset cpu io memory pids в единой > иехархии cgroups v2, а net_cls смонтировать отдельно как cgroups v1. > > # mount -t cgroup -o net_cls,net_prio cgroup /mnt/cgroup_v1/ > Единственное неудобство, что не получилось создать точку монтирования в /sys. А вот это интересно! Я бы даже не сказал пока, что это неудобство. Спасибо за идею: когда первые к-группы решат таки выкинуть из умолчаний, надо будет взять на вооружение. signature.asc Description: PGP signature
Re: Соотнесение процесса и поля QoS
Pavel Volkov wrote: > On вторник, 17 сентября 2019 г. 14:33:39 MSK, Dmitry Alexandrov wrote: >>> Попробую изучить cgroup-ы, а это свойство есть и в v1, и в v2? >> Нет, это в первых. А в Дебиан уже по-умолчанию вторые завезли? > > Да, есть и первые, и вторые. А, ну тогда пока все в порядке. > Чтобы systemd использовал и монтировал вторые, надо добавить аргумент ядру: > systemd.unified_cgroup_hierarchy=1 Ну да, «unified» — это как раз для первых и вторых разом. >> Тогда там само-то по себе все еще удобнее: возиться вручную с цифирью (а >> classid это число), если надо много разных классов создавать, уже не надо, >> можно буквами писать. >> >> Но есть и одно большое но: Систем-д. Он предъявляет монопольное право на >> распоряжение к-группами. Оно и на первые предъявлял, просто net_cls от него >> был свободен. А ко вторым, как вы знаете, все контроллеры слили в один, так >> что вот так по-простому: ...уже не сделаешь. Надо какой-то огород городить, >> чтобы при логине создавалось по своему ‘inet’у на каждого пользователя, >> причем вместе с отдельными правилами для Нетфильтра (хотя по делу они нафиг >> и не нужны). >> > > Я предполагаю делать так: $ systemd-run --user --scope --unit=inet.scope > my_program Не так. Ибо так при запуске следующей программы будет: $ systemd-run --user --scope --unit=inet iceweasel Failed to start transient scope unit: Unit inet.scope already exists. «inet» и прочие именные к-группы для Систем-д должны быть slice’ами, а не scope’ами, то есть либо: $ systemd-run --user --slice=inet --scope iceweasel либо уж службой (ключи подобрать по вкусу): $ systemd-run --user --slice=inet --collect iceweasel $ systemd-run --user --slice=inet --pty --same-dir --wait --collect --service-type=exec bash В любом случае без побочек не обойтись. Так, для logind они больше не будут частью сессии, например. > При этом запускается my_program, и она засовывается в новую c-группу > inet.scope, которая является подгруппой user@1000.service. И даже не нужны > рут-права, и файлы от этой группы в /sys/fs/ тоже принадлежат пользователю. Ну как же не нужны, когда Нетфильтр управляется только им (и в этом весь его смысл)? > Далее я бы хотел добавить примерно такое правило в nftables: # nft add rule > filter output meta cgroup <...> ip dscp set <...> > > Но не пойму, как определить числовой идентификатор группы, который тут > требуется. systemd-cgls его не сообщает, а и в /sys/fs/cgroup тоже его нет. Вот-вот, в этом и затык, я же говорю: нету теперь его. Если с первыми к-группами без Систем-д достаточно было один раз при запуске системы общие правила для Нетфильтра подгрузить, то со вторыми под Систем-д придется для каждого пользователя отдельные заводить, причем не раньше чем этот пользователь залогинится. А как соберется разлогинится — желательно бы удалять, хотя баг, когда иначе при следующей правке правил Нетфильтр выплюнул бы невнятную ошибку [1], вроде бы исправили. [1] https://bugzilla.kernel.org/show_bug.cgi?id=201789 Pavel Volkov wrote: > On вторник, 17 сентября 2019 г. 14:33:39 MSK, Dmitry Alexandrov wrote: >> # echo 1 > /sys/fs/cgroup/net_cls/inet/net_cls.classid >> # iptables -A OUTPUT -m cgroup --cgroup 1 -j ACCEPT >> # ip6tables -A OUTPUT -m cgroup --cgroup 1 -j ACCEPT > > А, стормозил, classid — это и есть ID группы в терминах нетфильтра. Придётся > воспользоваться cgroups первой версии тогда. Не люблю их за изобилие точек > монтирования. Да, как видите, лучше бы их за это как раз любили. :-) Ибо гибкость — большое благо. Причем они ведь достаточно были гибкими, чтобы если уж так кому хочется, то подмонтировать их все разом в такой же unified каталог, но нет: право выбора надо было выпилить. signature.asc Description: PGP signature
Re: Соотнесение процесса и поля QoS
On вторник, 17 сентября 2019 г. 14:33:39 MSK, Dmitry Alexandrov wrote: Но есть и одно большое но: Систем-д. Он предъявляет монопольное право на распоряжение к-группами. Оно и на первые предъявлял, просто net_cls от него был свободен. А ко вторым, как вы знаете, все контроллеры слили в один, так что вот так по-простому: ...уже не сделаешь. И ещё я не учёл 1 обстоятельство. Конечно же, так можно сделать. Ядро позволяет оставить контроллеры cpuset cpu io memory pids в единой иехархии cgroups v2, а net_cls смонтировать отдельно как cgroups v1. # mount -t cgroup -o net_cls,net_prio cgroup /mnt/cgroup_v1/ # mount | grep cgroup cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate) cgroup on /mnt/cgroup_v1 type cgroup (rw,relatime,net_cls,net_prio) # ls -1 /sys/fs/cgroup/ cgroup.controllers cgroup.max.depth cgroup.max.descendants cgroup.procs cgroup.stat cgroup.subtree_control cgroup.threads cpuset.cpus.effective cpuset.mems.effective init.scope system.slice user.slice # ls -1 /mnt/cgroup_v1/ cgroup.clone_children cgroup.procs cgroup.sane_behavior net_cls.classid net_prio.ifpriomap net_prio.prioidx notify_on_release release_agent tasks Единственное неудобство, что не получилось создать точку монтирования в /sys.