Grupos de control (strong>cgroups ) le permiten asignar recursos informáticos a procesos o tareas específicos. Puede asignar un conjunto de CPU y memoria a un grupo específico de tareas o incluso a un usuario específico. La publicación aquí detalla los pasos para asignar un recurso de memoria definido a un uso específico. Ulimit no podrá lograr este objetivo ya que ulimit limita el consumo de memoria del usuario por proceso. La mejor opción posible es usar cgroups. Con cgroups, los usuarios pueden limitarse no solo a los recursos de memoria, sino también a la CPU/IO. Veamos un ejemplo para limitar la memoria utilizada por el usuario “john” a 100mb.
Limitar la memoria para un usuario específico
1. Edite el archivo de configuración de cgroups /etc/cgconfig.conf y agregue las siguientes líneas
# vi /etc/cgconfig.conf group memlimit { memory { memory.limit_in_bytes = 104857600; #### limit memory to 100MB } }
El fragmento de código anterior creará un cgroup llamado memlimit donde el límite es 100 mb .
2. Ahora edite otro archivo /etc/cgrules.conf y agregue la siguiente línea:
# vi /etc/cgrules.conf john memory memlimit
Esto le dirá a cgroups que el usuario john se agregará a memlimit cgroup y solo podrá tomar 100 mb del sistema.
3. Una vez que haya terminado de editar los archivos de configuración, reinicie los servicios cgred y cgconfig .
# service cgred restart # service cgconfig restartservicio cgconfig (configuración del grupo de control) – utilizado para crear cgroups y administrar subsistemas
servicio cgred (demonio del motor de reglas de grupo de control) – se utiliza para mover tareas a cgroups de acuerdo con los parámetros establecidos en el archivo /etc/cgrules.conf.
4. Habilite ambos servicios para que se inicien al arrancar el sistema. Con esto nos aseguramos de que los archivos de configuración /etc/cgconfig.conf y /etc/cgrules.conf se lean en el momento del arranque y se creen cgroups.
# chkconfig cgred on # chkconfig cgconfig on