Instalar CGroups en Debian, Ubuntu y derivados

Instalar CGroups en Debian, Ubuntu y derivados.

En un anterior articulo ya vimos como instalar CGroups en CentOS, Fedora y Gentoo. En el que estamos viendo realizaremos la misma operación, pero en Debian, Ubuntu, Linux Mint y todos sus derivados.

Crearemos un sistema de archivos de tipo cgroup y todas las operaciones se ejecutaran en él.

*** Los ejemplos de configuración son diferentes, pero compatibles. Por tanto revisa los dos artículos ***

Instalar CGroups en Debian, Ubuntu y derivados 1

 

Instalar CGroups en Debian, Ubuntu y derivados

La instalación la podemos realizar usando libcgroup, cgmanager o systemd.

De la misma manera que la instalación, su uso también lo podemos realizar de diversas formas.

  • Accediendo al sistema de archivos cgroup directamente.
  • Usando el cliente cgm (cgmanager).
  • A través de cgcreate, cgexec y cgclassify (parte de cgroup-tools).
  • Haciendo uso de cgconfig.conf y cgrules.conf (parte de cgroup-tools).

En nuestro caso… realizaremos las operaciones haciendo uso de la ultima opción, por tanto debemos instalar «cgroup-tools«.

sudo apt-get install cgroup-tools

Por defecto, Debian deshabilita el controlador de memoria, así que lo habilitaremos agregando lo siguiente en:
nano /etc/default/grub

agregamos…
GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory swapaccount=1"

guarda y cierra el editor.

Actualizamos el Grub.

sudo update-grub

Instalar CGroups en Debian, Ubuntu y derivados 2

 

Definimos roles

nano /etc/cgconfig.conf

Ejemplo que puedes usar.
group app/editor {
  cpu {
    cpu.shares = 500;
  }
  memory {
    memory.limit_in_bytes = 1000000000;
  }
}

group app/browser {
  cpu {
    cpu.shares = 300;
  }
  memory {
    memory.limit_in_bytes = 1000000000;
  }
}

group app/util {
  cpu {
    cpu.shares = 300;
  }
  memory {
    memory.limit_in_bytes = 500000000;
  }
}

El valor máximo para cpu.shares es 1000, por tanto 300 establece al 30% como límite de uso para una aplicación (en este ejemplo).

Aplicamos este ejemplo al software del sistema.

nano /etc/cgrules.conf

ejemplo:
*:emacs         cpu,memory      app/editor/
*:conkeror      cpu,memory      app/browser/
*:firefox       cpu,memory      app/browser/
*:slack         cpu,memory      app/util/
*:filezilla     cpu,memory      app/util/

Aplicamos las reglas…
cgconfigparser -l /etc/cgconfig.conf

cgrulesengd

Verificamos que las reglas fueron aplicadas.
cat /proc/`pidof filezilla`/cgroup | grep app

Instalar CGroups en Debian, Ubuntu y derivados 3

 

ejemplo de salida valida.

# 5:memory:/app/util
# 2:cpu,cpuacct:/app/util

Verificamos el uso de memoria que hace una aplicación:
smem -P filezilla

ejemplo de salida valida.
PID User     Command                         Swap      USS      PSS      RSS
1955 sergio /home/sergio/.filezilla             0   191800   192388   201124

 

Damos por concluidos los artículos sobre CGroups, altamente recomendable sobre todo si eres el sysadmin de un servidor de empresa.

Agregar comentario