Skip to main content

cgroups v2 Resource Quotas & OOM Watchdogs(Контрольні групи ядра cgroups v2 та приборкання ресурсів)

Механізми ядра Linux (Control Groups v2) для встановлення жорстких апаратних лімітів на RAM, CPU, диск і кількість процесів (PIDs) з метою захисту хоста від завислих агентських циклів.

1. Огляд концепції та системна проблема

Автономні ШІ-агенти за своєю природою непередбачувані:

  • Агент пише рекурсивну функцію обходу графа файлів, забуває умову виходу і запускає нескінченне виділення пам'яті.
  • За 30 секунд споживання RAM підскакує з 200 МБ до 32 ГБ.
  • На хості спрацьовує аварійний механізм Linux Out-Of-Memory (OOM Killer), який за непередбачуваним евристичним алгоритмом вбиває не лише завислого агента, а й основну базу даних PostgreSQL та веб-сервер.

Control Groups v2 (cgroups v2) — це інженерна клітка ядра Linux. Вона дозволяє призначити процесу агента строгі рамки: навіть якщо агент намагатиметься виділити терабайт пам'яті, ядро примусово обмежить його виділеним лімітом і акуратно завершить лише цей конкретний ізольований процес.

2. Архітектурна таксономія та ментальна модель

┌─────────────────────────────────────────────────────────────┐
│                 CGROUPS V2 UNIFIED HIERARCHY                │
├─────────────────────────────────────────────────────────────┤
│ ROOT CONTROL GROUP (/sys/fs/cgroup)                         │
│ ├── system.slice (Критичні служби хоста: SSH, Systemd, UFW) │
│ │   ➔ Guaranteed Memory & High CPU Priority                 │
│ └── agent-sandbox.slice (Ізольований контур агента)          │
│     ├── memory.max = 1536M (Жорсткий ліміт пам'яті)        │
│     ├── memory.high = 1200M (М'який ліміт: троттлінг)       │
│     ├── cpu.max = 100000 100000 (Максимум 1 повне ядро)    │
│     ├── pids.max = 150 (Захист від Fork Bomb)               │
│     └── io.weight = 100 (Низький пріоритет запису на SSD)   │
└─────────────────────────────────────────────────────────────┘

3. Практичні інженерні сценарії в продакшені

01. Захист хостового сервера через systemd-run

Запуск ризикованого агентського скрипта безпосередньо у виділеній групі обмежень без контейнера:

systemd-run --scope -p MemoryMax=1G -p CPUQuota=50% -p TasksMax=50 python agent_worker.py

Якщо скрипт перевищить 1 ГБ RAM, ядро миттєво перезапустить лише сервіс agent_worker.py, не зачепивши жодного іншого процесу на сервері.

02. Використання PSI для адаптивного керування навантаженням

Моніторинговий демон зчитує /proc/pressure/memory. Якщо показник тиску перевищує 20%, система автоматично призупиняє прийом нових задач для агентів, доки поточні обчислення не завершаться.

4. Підводні камені, типові помилки та безпека

  • OOM Loops (Нескінченний цикл перезапусків): Якщо ліміт пам'яті встановлено занадто низько (наприклад, 256 МБ для Node.js додатку), агент буде падати і перезапускатися кожні 10 секунд, забиваючи черги.
  • Вимкнений Swap: За повної відсутності Swap-файлу на сервері різкий стрибок пам'яті викликає негайний SIGKILL. Рекомендується мати невеликий zram або swapfile на швидкому NVMe для пом'якшення пікових сплесків.

5. Стратегічний висновок для інженера 2026 року

cgroups v2 — це фундамент стабільності будь-якої інфраструктури, що взаємодіє з автономним кодом. Встановлення жорстких апаратних квот гарантує, що жодна помилка чи галюцинація ШІ не зможе порушити доступність хостового сервера.

/ Часті запитанняSchema.org FAQPage

FAQ: cgroups v2 Resource Quotas & OOM Watchdogs

cgroups v1 мав розділені незв'язані ієрархії для пам'яті, процесора та блокових пристроїв, що призводило до багів та неможливості точного троттлінгу вводу/виводу (I/O). cgroups v2 використовує єдину об'єднану ієрархію процесів (Unified Hierarchy) та підтримує тиск на пам'ять (Pressure Stall Information - PSI).
/ Внутрішня перелінковка
Всі терміни
VPS & DevOps

Docker для агентів та ботів (Container Sandboxing)

Методологія ізоляції автономних ШІ-агентів, інтерпретаторів коду та фонових сервісів у легковагових пісочницях Docker за допомогою cgroups та просторів імен (Namespaces) для запобігання пошкодженню хостової ОС.

Читати термін
VPS & DevOps

VPS Hardening (Харденінг та безпека Linux VPS)

Системний процес конфігурації та зменшення поверхні атаки (Attack Surface Reduction) операційної системи Linux на віртуальному сервері через обмеження привілеїв, криптографічну ізоляцію та мережевий аудит.

Читати термін
VPS & DevOps

Disaster Recovery (Аварійне відновлення та бекапи)

Комплексна інженерна методологія та набір автоматизованих інструментів для створення незмінних резервних копій (RPO/RTO) з гарантованим та регулярно тестованим регламентом відновлення працездатності систем.

Читати термін
Агенти & MCP

Agent Sandboxing

Апаратна та програмна ізоляція середовища виконання автономного агента, що гарантує захист хост-системи, секретів і внутрішньої мережі від шкідливого коду та prompt injection.

Читати термін