Jądro dokumentacja zawiera ogólny zasięg cgroups z przykładów.
cgroups-bin
Pakiet (który zależy libcgroup1
) już świadczone przez dystrybucji powinno być w porządku.
Konfiguracja odbywa się poprzez edycję następujących dwóch plików:
/etc/cgconfig.conf
Używany przez libcgroup do definiowania grup kontrolnych, ich parametrów i punktów montowania.
/etc/cgrules.conf
Używany przez libcgroup do zdefiniowania grup kontrolnych, do których należy proces.
Te pliki konfiguracyjne zawierają już przykłady, więc spróbuj je dostosować do swoich wymagań. Strony podręcznika dość dobrze opisują ich konfigurację.
Następnie uruchom menedżera obciążenia i demona reguł:
service cgconfig restart
service cgred restart
Menedżer obciążenia (cgconfig) jest odpowiedzialny za alokację zasobów.
Dodanie nowego procesu do menedżera:
cgexec [-g <controllers>:<path>] command [args]
Dodanie już uruchomionego procesu do menedżera:
cgclassify [-g <controllers>:<path>] <pidlist>
Lub automatycznie przez plik cgrules.conf i demona reguł CGroup (cgred), który zmusza każdy nowo spawnowany proces do określonej grupy.
Przykład /etc/cgconfig.conf:
group group1 {
perm {
task {
uid = alice;
gid = alice;
}
admin {
uid = root;
gid = root;
}
}
cpu {
cpu.shares = 500;
}
}
group group2 {
perm {
task {
uid = bob;
gid = bob;
}
admin {
uid = root;
gid = root;
}
}
cpu {
cpu.shares = 500;
}
}
mount {
cpu = /dev/cgroups/cpu;
cpuacct = /dev/cgroups/cpuacct;
}
Przykład /etc/cgrules.conf:
alice cpu group1/
bob cpu group2/
Spowoduje to współużytkowanie zasobów procesora około 50–50 między użytkownikiem „alice” i „bob”