===== CGroup (Control Group) =====
==== Beschreibung ====
CGroup (Control Group) ist eine Funktion des Linux-Kernels, mit der Prozesse in Gruppen zusammengefasst und deren Ressourcenverbrauch (CPU, Speicher, I/O, Netzwerk) gezielt gesteuert und überwacht werden kann.
==== Wichtige Funktionen ====
* Begrenzung von Ressourcen für Prozesse oder Dienste
* Überwachung und Accounting von Ressourcenverbrauch
* Priorisierung und Isolierung von Prozessen (z.B. für Container, Dienste)
==== Typische Nutzung ====
* Systemdienste (über systemd) werden automatisch in CGroups verwaltet
* Container-Lösungen wie Docker und LXC nutzen CGroups zur Ressourcensteuerung
==== Beispiele ====
# Prozesse und Ressourcen einer CGroup anzeigen
systemctl status
cat /sys/fs/cgroup///
# Aktive CGroups anzeigen
cat /proc/cgroups
# Beispielausgabe:
/proc/cgroups
#subsys_name hierarchy num_cgroups enabled
cpu 0 239 1
cpuacct 0 239 1
blkio 0 239 1
devices 0 239 1
freezer 0 239 1
net_cls 0 239 1
perf_event 0 239 1
net_prio 0 239 1
hugetlb 0 239 1
pids 0 239 1
rdma 0 239 1
misc 0 239 1
^ Spalte ^ Bedeutung ^
| subsys_name | Name des Controllers (z.B. cpu, memory, devices) |
| hierarchy | ID der Hierarchie (0 = nicht zugeordnet, sonst Nummer der Hierarchie) |
| num_cgroups | Anzahl der aktuell existierenden CGroups für diesen Controller |
| enabled | 1 = Controller ist aktiv, 0 = deaktiviert |
**Beispiel für die Zahlen:**
| hierarchy 0 | bedeutet, der Controller ist keiner Hierarchie zugeordnet; eine andere Zahl wäre die Hierarchie-ID. |
| num_cgroups | Wie viele CGroup-Gruppen für diesen Controller aktuell existieren. |
| enabled | 1 = Controller ist aktiv/nutzbar, 0 = deaktiviert. |
==== Weitere Informationen ====
man cgroups
man systemd.resource-control