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
Embora seja recomendável usar Controle de recursos com systemd, 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, encontrado anteriormente em EPEL.
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
-
Instale o pacote
libcgroup-tools.[ec2-user ~]$sudo dnf installlibcgroup-tools -
Crie um
cgroupcom os controladoresmemoryecpu, e dê a ele um nome (our-example-limits). Use as opções-ae-tpara permitir que o usuárioec2-usercontrole os ajustáveis docgroup.[ec2-user ~]$sudo cgcreate -aec2-user-tec2-user-g memory,cpu:our-example-limitsAgora 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-v1em vez decgroup-v2, que é usado no AL2023. No AL2, os caminhossysfssão diferentes, e haverá diretórios/sys/fs/cgroup/memory/our-example-limitse/sys/fs/cgroup/cpu/our-example-limitspertencentes aec2-userque conterão arquivos que podem ser usados para controlar os limites decgroup. -
Limite o uso de memória por todos os processos em
cgroupa 100 milhões de bytes.[ec2-user ~]$echo100000000> /sys/fs/cgroup/our-example-limits/memory.maxnota
O Amazon Linux 2 usa
cgroup-v1em vez decgroup-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 ~]$echo10000000> /sys/fs/cgroup/memory/our-example-limits/memory.limit_in_bytes -
Limite o uso de CPU por todos os processos em
cgroupa 10%. O formato do arquivocpu.maxé$MAX $PERIOD, limitando o grupo a consumir$MAXpara cada$PERIOD.[ec2-user ~]$echo10000 100000> /sys/fs/cgroup/our-example-limits/cpu.maxO Amazon Linux 2 usa
cgroup-v1em vez decgroup-v2, que é usado pelo Amazon Linux 2023. Isso significa que alguns ajustáveis são diferentes, incluindo como limitar o uso da CPU. -
O exemplo abaixo executa
stress-ng(que pode ser instalado executandodnf install -y stress-ng) emour-example-limitscgroup. Enquanto o comandostress-ngestá em execução, você pode usartoppara observar a limitação em 10% do tempo da CPU.[ec2-user ~]$sudo cgexec -g memory,cpu:our-example-limitsstress-ng --cpu 1 -
Remova cgroup.
[ec2-user ~]$sudo cgdelete -g memory,cpu:our-example-limits
A documentação de kernel do Linux para cgroup-v2