CPULimit

Limite e controle a utilização da CPU por qualquer processo no Linux com CPULimit.

| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.

Introdução

CPULimit é uma ferramenta de linha de comando simples e poderosa para limitar e controlar a utilização da CPU por qualquer processo em um determinado limite e permite a interrupção da execução do processo se a carga do sistema ultrapassar aquele limite definido.

Como funciona?

A fim de limitar o uso de CPU, o CPULimit envia os comandos SIGSTOP e SIGCONT para processos e este é determinado pela carga do sistema. Ele depende do conteúdo de /proc para ler PIDs e suas medidas de uso de CPU.

Instalação

A instalação do CPULimit é muito simples. Em sistemas baseados em Debian, faça:

$ sudo apt install cpulimit

Já para o CentOS/RHEL, temos:

# yum install epel-release
# yum install cpulimit

Uso

Faremos o seguinte comando:

$ sudo dd if=/dev/zero of=/dev/null &

Ele vai apenas enviar o nada para lugar algum!
Basicamente pegar os zeros de /dev/zero e enviá-los a /dev/null, gerando um uso de CPU para demonstração e benchmark. Não haverá qualquer perda de dados aqui.

Com o comando ‘top’, verifique que o uso de CPU pelo comando dd é de 100%.

Agora, faremos uso do CPULimit propriamente dito.

A flag –cpu-limit (ou -c) é usada para definir uma porcentagem de uso para um processo ou grupo de processos e -p é usado para especificar um PID. O comando a seguir limitará o comando dd (PID 8275) a 50% de uso de um núcleo de CPU:

$ sudo cpulimit --pid 17918 --limit 50

Após executar esse comando, verifique novamente pelo ‘top’ que o uso de CPU pelo processo dd agora é de 50%:

Executando uma segunda vez, limitamos seu uso para 20% da seguinte maneira:

$ sudo cpulimit --pid 17918 --limit 20

OBS: O shell não espera qualquer comando do usuário enquanto o CPULimit estiver executando. Para finalizar o processo use “Ctrl C”.

Para jogar um processo CPULimit como background, use:

$ sudo cpulimit --pid 17918 --limit 20 --background

Para definir um grupo de processos executando diversas instâncias, exemplo, num servidor:

$ sudo pidof apache2

9592 3643 3642 3641 3640 3638 3637 1780

Faça:

$ sudo cpulimit --cpu-limit 20 -P 1780

OBS: Use a flag -p para “pid” (1 processo) e -P para “process group” (árvore de processos). Ambos com a flag -c (–cpu-limit).

Limitando carga de CPU

A flag -l (‘L’ minusculo ou –load-limit) é usada para limitar a carga de CPU de um processo ou grupo de processos.

Nesse caso usamos sempre opção fracionada.
No exemplo abaixo, a carga máxima será de 3.5.
Se o processo do proximo exemplo, no caso, do rsync (backup de um diretório), exceder a carga de 3.5 de CPU, ele será limitado, assim ele nunca vai passar daquele ponto causando grande consumo de recursos de sistema.

$ sudo cpulimit --load-limit 3.5 --rsync -av /home/nathandrake /backup/`date +%Y-%m-%d`/

Para mais detalhes:

$ man cpulimit

#UrbanCompassPony

Referência Bibliográfica:
Onlyzy

Deixe um comentário