

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Limitar o uso de recursos do processo no AL2023 usando cgroups
<a name="resource-limiting-raw-cgroups"></a>

 Embora seja recomendável usar [Controle de recursos com systemd](resource-limiting-systemd.md), esta seção aborda o uso básico dos utilitários `libcgroup-tools` básicos para limitar o uso da CPU e da memória pelos processos. Ambos os métodos são alternativas ao uso do utilitário [`cpulimit`](epel.md#cpulimit), encontrado anteriormente em [EPEL](epel.md). 

 O exemplo abaixo abrange a execução do teste de estresse `stress-ng` (do pacote `stress-ng`) enquanto limita o uso de CPU e memória usando utilitários do pacote `libcgroup-tools` e os ajustáveis em `sysfs`. 

**Usar `libcgroup-tools` na linha de comandos para limitar o uso de recursos**

1.  Instale o pacote `libcgroup-tools`. 

   ```
   [ec2-user ~]$ sudo dnf install libcgroup-tools
   ```

1.  Crie um `cgroup` com os controladores `memory` e `cpu`, e dê a ele um nome (`our-example-limits`). Use as opções `-a` e `-t` para permitir que o usuário `ec2-user` controle os ajustáveis do `cgroup`. 

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

    Agora existe um diretório `/sys/fs/cgroup/our-example-limits/` que contém arquivos que podem ser usados para controlar cada ajustável. 
**nota**  
 O Amazon Linux 2 usa `cgroup-v1` em vez de `cgroup-v2`, que é usado no AL2023. No AL2, os caminhos `sysfs` são diferentes, e haverá diretórios `/sys/fs/cgroup/memory/our-example-limits` e `/sys/fs/cgroup/cpu/our-example-limits` pertencentes a `ec2-user` que conterão arquivos que podem ser usados para controlar os limites de `cgroup`. 

1.  Limite o uso de memória por todos os processos em `cgroup` a 100 milhões de bytes. 

   ```
   [ec2-user ~]$ echo 100000000 > /sys/fs/cgroup/our-example-limits/memory.max
   ```
**nota**  
 O Amazon Linux 2 usa `cgroup-v1` em vez de `cgroup-v2`, que é usado pelo Amazon Linux 2023. Isso significa que alguns ajustáveis são diferentes. Para limitar o uso de memória no AL2, o ajustável abaixo é usado em vez disso.   

   ```
   [ec2-user ~]$ echo 10000000 > /sys/fs/cgroup/memory/our-example-limits/memory.limit_in_bytes
   ```

1.  Limite o uso de CPU por todos os processos em `cgroup` a 10%. O formato do arquivo `cpu.max` é `$MAX $PERIOD`, limitando o grupo a consumir `$MAX` para cada `$PERIOD`. 

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

    O Amazon Linux 2 usa `cgroup-v1` em vez de `cgroup-v2`, que é usado pelo Amazon Linux 2023. Isso significa que alguns ajustáveis são diferentes, incluindo como limitar o uso da CPU. 

1.  O exemplo abaixo executa `stress-ng` (que pode ser instalado executando `dnf install -y stress-ng`) em `our-example-limits` cgroup. Enquanto o comando `stress-ng` está em execução, você pode usar `top` para observar a limitação em 10% do tempo da CPU. 

   ```
   [ec2-user ~]$ sudo cgexec -g memory,cpu:our-example-limits stress-ng --cpu 1
   ```

1. Remova cgroup.

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

 A [documentação de kernel do Linux para `cgroup-v2`](https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html) contém muitos detalhes sobre como esse mecanismo funciona. A documentação dos controladores [cpu](https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#cpu) e [memory](https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#memory) abrange os detalhes de como usar cada opção ajustável. 