

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
<a name="resource-limiting-raw-cgroups"></a>

 Si bien se recomienda usar [Control de recursos con systemd](resource-limiting-systemd.md), 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`](epel.md#cpulimit), que anteriormente se encontraba en [EPEL](epel.md). 

 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
   ```

1.  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`. 

1.  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
   ```

1.  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. 

1.  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
   ```

1. 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`](https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html) contiene amplios detalles sobre su funcionamiento. La documentación de los controladores de [cpu](https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#cpu) y [memory](https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#memory) describe los detalles de cómo usar cada opción ajustable. 