TGViewer
LinuxCamp | DevOps LinuxCamp | DevOps @linuxcamp_tg · 13.6K subscribers
Post #551 6.53K
Как cgroups v2 реально ограничивает CPU, память и IO

Что такое cgroups v2

cgroups v2 - это механизм ядра, который делит ресурсы системы между группами процессов. Для каждой группы ядро считает и ограничивает CPU, память, дисковый и сетевой IO. Всё управляется через файловую систему /sys/fs/cgroup.

Проверить, используется ли v2:


mount | grep cgroup2
cat /sys/fs/cgroup/cgroup.controllers


Иерархия и контроллеры

Все группы - это директории внутри /sys/fs/cgroup. В каждой можно включить контроллеры и настроить лимиты. Процесс "попадает" в cgroup, когда его PID записывают в файл cgroup.procs.

Пример создания отдельной группы вручную:


cd /sys/fs/cgroup
mkdir test.slice
echo "+cpu +memory +io" > cgroup.subtree_control
cd test.slice
echo $$ > cgroup.procs # добавить текущий shell


Ограничение CPU

CPU в v2 настраивается через квоту и период. Так ядро решает, какую долю от одного ядра может использовать группа. Пример: не более 50% одного CPU:


echo "100000" > cpu.max # период 100 мс
echo "50000" >> cpu.max # квота 50 мс


Для полного запрета ограничения (no throttle):


echo "max" > cpu.max


Ограничение памяти

Ядро отслеживает все страницы памяти группы и сравнивает их с лимитом. При превышении включается reclaim, а в крайнем случае OOM внутри cgroup. Пример жёсткого лимита 512 МБ:


echo $((512 * 1024 * 1024)) > memory.max


Текущие значения и пики:


cat memory.current
cat memory.events


Ограничение дискового IO

Контроллер io задаёт лимиты на чтение и запись для конкретных устройств. Ядро контролирует количество операций и суммарную пропускную способность. Пример: ограничить чтение до 10 МБ/с для /dev/sda:


echo "8:0 rbps=10485760" > io.max


Узнать номера устройств:


lsblk --output NAME,MAJ:MIN


Вывод

cgroups v2 - это единая иерархия, где для каждой директории можно включить контроллеры CPU, памяти и IO, добавить процессы и задать жёсткие лимиты. Всё управление сводится к записи чисел и параметров в файлы внутри /sys/fs/cgroup, а дальше ядро само выполняет политику.

LinuxCamp | #overview
  • 👍 31
  • ❤ 7
  • 🔥 5
More from @linuxcamp_tg
  1. Sep 28, 2026Проекту GNU вчера исполнилось 43 года 1983 год: Ричард Столлман объявил планы разработать…
  2. Sep 25, 2026Linux будет работать на ноутах с Snapdragon X2. Qualcomm добавляет полноценную поддержку L…
  3. Sep 24, 2026Так все по делу)) Советует же самый быстрый фикс LinuxCamp | #memes
  4. Sep 23, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
  5. Sep 22, 2026Ещё одна рекордная неделя для AI-разработки в Linux. На прошлой неделе в ядро попало 1 634…
  6. Sep 17, 2026Открыл плейлист, а как выйти - непонятно 😁 LinuxCamp | #memes
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →