Kontrollgruppen (strong>cgroups ) ermöglichen es Ihnen, Rechenressourcen bestimmten Prozessen oder Aufgaben zuzuweisen. Sie können einer bestimmten Gruppe von Aufgaben oder sogar einem bestimmten Benutzer einen Satz CPU und Arbeitsspeicher zuweisen. Der Beitrag hier beschreibt die Schritte zum Zuweisen einer definierten Speicherressource zu einer bestimmten Verwendung. Ulimit wird dieses Ziel nicht erreichen können, da ulimit den Benutzerspeicherverbrauch pro Prozess begrenzt. Die beste Option ist die Verwendung von cgroups. Mit Cgroups können Benutzer nicht nur auf Speicherressourcen, sondern auch auf CPU/IO beschränkt werden. Sehen wir uns ein Beispiel an, um den vom Benutzer „john“ verwendeten Speicher auf 100 MB zu begrenzen.
Einschränken des Speichers für einen bestimmten Benutzer
1. Bearbeiten Sie die cgroups-Konfigurationsdatei /etc/cgconfig.conf und fügen Sie die folgenden Zeilen hinzu
# vi /etc/cgconfig.conf group memlimit { memory { memory.limit_in_bytes = 104857600; #### limit memory to 100MB } }
Der obige Codeabschnitt erstellt eine cgroup namens memlimit wobei das Limit 100 MB ist .
2. Bearbeiten Sie nun eine weitere Datei /etc/cgrules.conf und fügen Sie die folgende Zeile hinzu:
# vi /etc/cgrules.conf john memory memlimit
Dies teilt cgroups mit, dass Benutzer john zur memlimit cgroup hinzugefügt wird und nur 100 MB vom System nehmen kann.
3. Wenn Sie mit der Bearbeitung der Konfigurationsdateien fertig sind, starten Sie die Dienste cgred neu und cgconfig .
# service cgred restart # service cgconfig restartcgconfig(control group config) service – Wird verwendet, um cgroups zu erstellen und Subsysteme zu verwalten
cgred (Control Group Rules Engine Daemon) Service – Wird verwendet, um Aufgaben gemäß den in der Datei /etc/cgrules.conf festgelegten Parametern in cgroups zu verschieben.
4. Aktivieren Sie beide Dienste, um beim Systemstart zu starten. Damit stellen wir sicher, dass die Konfigurationsdateien /etc/cgconfig.conf und /etc/cgrules.conf beim Booten gelesen und cgroups erstellt werden.
# chkconfig cgred on # chkconfig cgconfig on