Что такое корневая группа CGROUP?

здесь упоминается:

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


Что такое корневая группа CGROUP? В модели процесса Linux.


person overexchange    schedule 05.02.2020    source источник


Ответы (1)


В вашей статье говорится о «классическом» и «унифицированном» (cgroup v2) контрольные группы:

https://lwn.net/Articles/606699/

Как недавно сообщалось, в ядре Linux 3.16 будет находиться в стадии разработки поддержка так называемой «унифицированной иерархии». Новые идеи, представленные в этой разработке, пока не будут обсуждаться, поскольку мы не можем по-настоящему оценить, какую ценность они могут принести, пока полностью не поймем, что у нас есть...

В классическом режиме, который в конечном итоге может быть признан устаревшим, но все еще полностью поддерживается, может быть несколько отдельных иерархий контрольных групп. Каждая иерархия начинает свою жизнь как корневая контрольная группа, которая изначально содержит все процессы. Этот корневой узел создается путем монтирования экземпляра виртуальной файловой системы "cgroup", и все дальнейшие модификации иерархии происходят посредством манипуляций с этой файловой системой...

Это очень "организационный" способ манипулировать иерархией: создать новую группу и найти кого-то, кто ее заполнит...

Вот хорошая статья о текущем статусе принятия v2 (например, в сообществе Docker):

Текущий статус принятия cgroup v2 в контейнерах

Fedora 31 была выпущена 29 октября 2019 года. Это первый крупный дистрибутив, в котором cgroup v2 (также известная как единая иерархия) включена по умолчанию, спустя 5 лет после ее первого появления в ядре Linux 3.16 (3 августа 2014 года).

Хотя принятие cgroup v2 является неизбежным шагом к 2020-м годам, большинство реализаций контейнеров, включая Docker/Moby и Kubernetes, по-прежнему не поддерживают cgroup v2...

ОК: на ваш вопрос - "Что такое root CGROUP?"

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

Согласно документации:

http://man7.org/linux/man-pages/man7/cgroups.7.html

Создание контрольных групп и перемещение процессов

Файловая система cgroup изначально содержит одну корневую cgroup '/', к которой принадлежат все процессы. Новая cgroup создается путем создания каталога в файловой системе cgroup:

mkdir /sys/fs/cgroup/cpu/cg1

Это создает новую пустую cgroup.

Процесс можно переместить в эту контрольную группу, записав его PID в файл cgroup.procs контрольной группы:

echo $$ > /sys/fs/cgroup/cpu/cg1/cgroup.procs

В этот файл должен быть записан только один PID....

Полезные статьи:

person FoggyDay    schedule 05.02.2020