Kontrolní skupiny (strong>cgroups ) vám umožní přidělit výpočetní zdroje konkrétním procesům nebo úkolům. Sadu CPU a paměti můžete přiřadit konkrétní skupině úloh nebo dokonce konkrétnímu uživateli. Příspěvek zde podrobně popisuje kroky k přidělení definovaného paměťového prostředku pro konkrétní použití. Ulimit nebude schopen tohoto cíle dosáhnout, protože ulimit omezuje spotřebu uživatelské paměti na proces. Nejlepší možnou možností je použít cgroups. Pomocí cgroups mohou být uživatelé omezeni nejen na paměťové zdroje, ale také na CPU/IO. Podívejme se na příklad omezení paměti používané uživatelem „john“ na 100 MB.
Omezení paměti pro konkrétního uživatele
1. Upravte konfigurační soubor cgroups /etc/cgconfig.conf a přidejte níže uvedené řádky
# vi /etc/cgconfig.conf group memlimit { memory { memory.limit_in_bytes = 104857600; #### limit memory to 100MB } }
Výše uvedený kousek kódu vytvoří cgroup s názvem memlimit kde limit je 100 MB .
2. Nyní upravte další soubor /etc/cgrules.conf a přidejte pod řádek:
# vi /etc/cgrules.conf john memory memlimit
To řekne cgroups, že uživatel john bude přidán do memlimit cgroup a bude moci odebrat pouze 100 MB ze systému.
3. Po dokončení úprav konfiguračních souborů restartujte služby cgred a cgconfig .
# service cgred restart # service cgconfig restartslužba cgconfig(control group config) – používá se k vytváření skupin cgroups a správě podsystémů
služba cgred (ovládací démon pro pravidla skupiny) – používá se k přesouvání úloh do cgroups podle parametrů nastavených v souboru /etc/cgrules.conf.
4. Povolte spuštění obou služeb při spuštění systému. Tím zajistíme, že konfigurační soubory /etc/cgconfig.conf a /etc/cgrules.conf jsou načteny při bootování a že jsou vytvořeny cgroups.
# chkconfig cgred on # chkconfig cgconfig on