Limitación del uso de recursos de procesos en AL2023 mediante cgroups - Amazon Linux 2023

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Limitación del uso de recursos de procesos en AL2023 mediante cgroups

Si bien se recomienda usar Control de recursos con systemd, en esta sección se describe el uso básico de las utilidades básicas libcgroup-tools para limitar el uso de la CPU y la memoria de los procesos. Ambos métodos son alternativas al uso de la utilidad cpulimit, que anteriormente se encontraba en EPEL.

El siguiente ejemplo describe la ejecución de la prueba de stress-ng estrés (desde el paquete stress-ng) y, al mismo tiempo, limitar el uso de la CPU y la memoria mediante las utilidades del paquete libcgroup-tools y los ajustes incluidos sysfs.

Use libcgroup-tools en la línea de comandos para limitar el uso de recursos
  1. Instale el paquete libcgroup-tools.

    [ec2-user ~]$ sudo dnf install libcgroup-tools
  2. Cree un cgroup con los controladores memory y cpu, y asígnele un nombre (our-example-limits). Utilice las opciones -a y -t para permitir al usuario ec2-user controlar los ajustes de cgroup

    [ec2-user ~]$ sudo cgcreate -a ec2-user -t ec2-user -g memory,cpu:our-example-limits

    Ahora hay un directorio /sys/fs/cgroup/our-example-limits/ que contiene archivos que se pueden usar para controlar cada uno de los parámetros ajustables.

    nota

    Amazon Linux 2 usa cgroup-v1 en lugar de cgroup-v2 que se usa en AL2023. En AL2, las rutas sysfs son diferentes, y habrá directorios /sys/fs/cgroup/memory/our-example-limits y /sys/fs/cgroup/cpu/our-example-limits propiedad de ec2-user que contienen archivos que se pueden usar para controlar los límites de cgroup.

  3. Limite el uso de memoria de todos los procesos de nuestro cgroup a 100 millones de bytes.

    [ec2-user ~]$ echo 100000000 > /sys/fs/cgroup/our-example-limits/memory.max
    nota

    Amazon Linux 2 usa cgroup-v1 en lugar de cgroup-v2 que usa Amazon Linux 2023. Esto significa que algunos parámetros ajustables son diferentes. Para limitar el uso de memoria en AL2, se utiliza en su lugar el siguiente parámetro ajustable.

    [ec2-user ~]$ echo 10000000 > /sys/fs/cgroup/memory/our-example-limits/memory.limit_in_bytes
  4. Limite el uso de la CPU de todos los procesos de nuestro cgroup al 10 %. El formato del archivo cpu.max es $MAX $PERIOD, lo que limita al grupo a consumir $MAX por cada $PERIOD.

    [ec2-user ~]$ echo 10000 100000 > /sys/fs/cgroup/our-example-limits/cpu.max

    Amazon Linux 2 usa cgroup-v1 en lugar de cgroup-v2 que usa Amazon Linux 2023. Esto significa que algunos parámetros ajustables son diferentes, incluida la forma de limitar el uso de la CPU.

  5. El siguiente ejemplo ejecuta stress-ng (que se puede instalar ejecutando dnf install -y stress-ng) en el cgroup de our-example-limits. Mientras se ejecuta el comando stress-ng, se puede observar con top que está limitado al 10 % del tiempo de CPU.

    [ec2-user ~]$ sudo cgexec -g memory,cpu:our-example-limits stress-ng --cpu 1
  6. Haga una limpieza eliminando el cgroup

    [ec2-user ~]$ sudo cgdelete -g memory,cpu:our-example-limits

La documentación del kernel de Linux para cgroup-v2 contiene amplios detalles sobre su funcionamiento. La documentación de los controladores de cpu y memory describe los detalles de cómo usar cada opción ajustable.