SystemdDoctor
Контрольные группы (cgroup)

Контрольные группы в systemd: учёт и ограничение ресурсов

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

Что делает

Именно контрольные группы позволяют systemd надёжно отслеживать процессы службы. Старые системы инициализации теряли «осиротевшие» процессы, а здесь они остаются в группе — отсюда возможность остановить службу целиком и посмотреть её потребление.

Дерево устроено просто: системные службы лежат в system.slice, сеансы пользователей в user.slice, свои группы служб — в собственных срезах. Ограничения наследуются: потолок среза ограничивает всех его участников.

Где ставится. Дерево видно командами systemd-cgls и systemd-cgtop, ограничения задаются параметрами unit.

Значения

ЗначениеЧто происходит
systemd-cglsдерево контрольных групп с процессами.
systemd-cgtopпотребление по группам, как top.
systemctl status имяв конце вывода показывает группу службы и её процессы.
/sys/fs/cgroupфайловая система, через которую всё это работает.

Пример

Кто потребляет память и процессор на машине.

systemd-cgtop -1 --order=memory
systemd-cgls /system.slice --no-pager | head -40
systemctl status myapp.service --no-pager | tail -12

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

Типичные ошибки

Ограничение среза сильнее ограничения службы: упор может быть не там, где вы правите.

В контейнерах доступ к дереву групп часто урезан, и часть ограничений не применяется.

На системах со смешанной иерархией (первая и вторая версия одновременно) поведение ограничений неполное.

Связанные ошибки

  • status=219/CGROUP в systemdКод 219/CGROUP: не удалось создать или настроить контрольную группу службы. Причины на уровне системы и контейнеров.
  • Failed with result 'resources'Состояние resources: systemd не смог выделить ресурсы для запуска службы. Чем отличается от кодов 200-й группы и что проверять.
  • Failed with result 'oom-kill'Состояние oom-kill: процесс службы убит из-за нехватки памяти. Как понять, упёрлись в предел службы или в память машины.

Рядом стоящие параметры

Где важен на практике

Источники

  • systemd.resource-control(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026