===== 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