Cgroups

Cgroups (Control Groups) is een Linux-kernelfunctie waarmee je resources — CPU, geheugen, schijf-I/O en netwerk — kunt beperken en bewaken per groep processen.

Waarvoor cgroups gebruikt worden

  • Containers — Docker en systemd-nspawn gebruiken cgroups om containers te isoleren
  • Resourcelimieten — voorkomen dat één proces alle CPU of RAM opslurpt
  • Prioritering — kritieke processen meer resources geven dan achtergrondtaken

Voorbeelden

Via systemd kun je limieten instellen per service:

# Service beperken tot 50% CPU en 512 MB RAM
systemctl set-property nginx.service CPUQuota=50% MemoryMax=512M
systemctl status nginx.service   # huidige limieten bekijken

Direct via cgroup-bestanden:

cat /sys/fs/cgroup/system.slice/nginx.service/memory.current

Cgroups v1 vs v2

Moderne systemen (Fedora, Ubuntu 21.10+) gebruiken cgroups v2 — een uniforme hiërarchie. Oudere systemen hebben cgroups v1 met aparte subsystemen per resource.

Zie ook

linuxprocessencontainers