Контейнеры и оркестрация

Группа управления ресурсами

Определение

Группа управления ресурсами (cgroup) — объединение процессов Linux, для которого ядро учитывает и ограничивает потребление процессора, памяти и ввода-вывода. В cgroup v2 такие группы образуют единую иерархию: ограничения родительской группы действуют и для дочерних.

Также ищут: cgroup · cgroup v2 · группа контроля ресурсов

Зачем это знать

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

Связи из словаря

Карта понятия

Группа управления ресурсами
Доказательная часть

Что подтверждено

  1. Cgroup v2 организует процессы в единую иерархию. Контроллеры распределяют ресурсы между её ветвями; ограничения родительской группы продолжают действовать для дочерних.

    Граница применимости: Иерархия cgroup v2 и включённые контроллеры Linux.

  2. Cgroup задаёт правила потребления, а пространство имён — видимость системных объектов. Отдельное представление системы не выделяет процессам собственные физические ресурсы.

    Граница применимости: Сопоставление cgroup v2 и пространств имён Linux.

  3. Вес CPU задаёт относительную долю процессорного времени при конкуренции. Квота задаёт максимум времени за период. Большой вес не отменяет квоту и не означает закрепление за отдельным ядром.

    Граница применимости: Контроллер CPU в cgroup v2; вес и максимальная полоса процессорного времени.

  4. Квота 50 мс на период 100 мс даёт группе до половины времени одного CPU в среднем за период. Несколько её потоков расходуют общий бюджет; после исчерпания квоты они ждут следующего периода.

    Граница применимости: Иллюстрация периодической квоты CPU в cgroup v2 без дополнительного бюджета всплесков; это не закрепление ядра.

  5. Порог memory.high усиливает освобождение памяти и замедляет нарушающую его группу; сам по себе он не вызывает завершение из-за нехватки памяти. Предел memory.max может привести к такому завершению, если освобождения памяти недостаточно.

    Граница применимости: Контроллер памяти cgroup v2; поведение memory.high и memory.max.

  6. Статистика CPU и события памяти показывают срабатывание ограничений группы. Их нужно сопоставлять с задержкой приложения: покупка более мощного сервера не меняет уже установленную квоту.

    Граница применимости: Диагностика ограничений cgroup v2 при неизменной конфигурации группы.

  7. Пространство имён cgroup может скрывать часть пути группы, но учёт и ограничения продолжают действовать в общей иерархии ядра. Скрытая ветвь не становится отдельным набором физических ресурсов.

    Граница применимости: Пространство имён cgroup и иерархия cgroup v2 в Linux.

Граница терминов

Не путать

Группа управления ресурсами Пространство имён Linux

Cgroup ограничивает потребление, но не создаёт отдельный список процессов или сетевых интерфейсов. Для разделения видимости нужны пространства имён, для распределения CPU и RAM — контроллеры ресурсов.

Группа управления ресурсами Лимит ресурсов Kubernetes

Cgroup применяется к процессам Linux независимо от наличия Kubernetes. Лимит контейнера Kubernetes передаётся механизмам узла; его фактические последствия видны в статистике группы.

Перед спецификацией

Что проверить

  1. Установите, использует ли узел cgroup v2 и какие контроллеры включены.
  2. Проверьте ограничения самой группы и её родителей.
  3. Разделите вес CPU, квоту за период и закрепление за ядрами.
  4. Сопоставьте время ожидания квоты с задержкой приложения под нагрузкой.
  5. Проверьте memory.high, memory.max и события нехватки памяти.
  6. Учтите общие ресурсы соседних групп при нагрузочном испытании.
  7. До покупки новых CPU или RAM выясните, упирается ли приложение в оборудование или настроенный предел.
Открытые основания

Первоисточники

  • Документация3
  • Официальная документация
    Control Group v2 The Linux Kernel documentation · Linux kernel latest documentation · проверено

    Описывает иерархическое распределение ресурсов, контроллеры, ограничения, учёт потребления и пространство имён cgroup.

    Утверждения: 01 · 02 · 03 · 04 · 05 · 06 · 07

  • Официальная документация
    namespaces(7) — Linux manual page Linux man-pages project · Linux man-pages 6.18 · проверено

    Описывает отдельные представления системных ресурсов в пространствах имён Linux и перечисляет изолируемые классы объектов.

    Утверждения: 02

  • Официальная документация
    Resource Management for Pods and Containers Kubernetes · Kubernetes current documentation · проверено

    Разделяет запросы и ограничения CPU и памяти: их учёт при размещении, распределение процессорного времени и применение пределов на узле.

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие