La documentación del núcleo proporciona una cobertura general de cgroups con ejemplos.
El cgroups-bin
paquete (que depende de libcgroup1
) ya proporcionado por la distribución debería estar bien.
La configuración se realiza editando los siguientes dos archivos:
/etc/cgconfig.conf
Utilizado por libcgroup para definir grupos de control, sus parámetros y puntos de montaje.
/etc/cgrules.conf
Usado por libcgroup para definir los grupos de control a los que pertenece el proceso.
Esos archivos de configuración ya tienen ejemplos, así que intente ajustarlos a sus requisitos. Las páginas del manual cubren su configuración bastante bien.
Luego, inicie el administrador de carga de trabajo y el demonio de reglas:
service cgconfig restart
service cgred restart
El administrador de carga de trabajo (cgconfig) es responsable de asignar los recursos.
Agregar un nuevo proceso al administrador:
cgexec [-g <controllers>:<path>] command [args]
Agregar un proceso ya en ejecución al administrador:
cgclassify [-g <controllers>:<path>] <pidlist>
O automáticamente sobre el archivo cgrules.conf y el CGroup Rules Daemon (cgred), que obliga a cada proceso nuevo generado al grupo especificado.
Ejemplo /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;
}
Ejemplo /etc/cgrules.conf:
alice cpu group1/
bob cpu group2/
Esto compartirá los recursos de la CPU aproximadamente 50-50 entre el usuario 'alice' y 'bob'