Control Groups (или просто
cgroups) - это фича ядра Linux, позволяющая ограничивать ресурсы, выделенные для процессов: CPU, память, диск, сеть и т.д.⭐️ Пример: вы хотите, чтобы процесс stress не съедал всю память и CPU:
# Создаём cgroup
sudo cgcreate -g memory,cpu:/limitgroup
# Ограничим память до 500MB
sudo cgset -r memory.limit_in_bytes=$((500*1024*1024)) limitgroup
# Ограничим CPU (50% одного ядра)
sudo cgset -r cpu.cfs_quota_us=50000 limitgroup
sudo cgset -r cpu.cfs_period_us=100000 limitgroup
# Запускаем процесс внутри cgroup
sudo cgexec -g memory,cpu:/limitgroup stress --vm 1 --vm-bytes 700M --cpu 1
Процесс превысит лимит - будет убит OOM-килером.
Все параметры и статистику можно смотреть в
/sys/fs/cgroup/.#linux #cgroups
🧑💻 NetworkAdmin