CPULimit, limita o uso que um processo faz da CPU

sobre CPULimit

No próximo artigo, daremos uma olhada no CPULimit. Esta é uma ferramenta de linha de comando que limita o uso da CPU por um processo (expresso em porcentagem, não o tempo da CPU). Isso será útil para controlar jobs em lote, quando não queremos que um processo consuma muitos ciclos de CPU.

Com o uso desta ferramenta não vamos alterar o valor ou outras configurações de prioridade, mas o uso real da CPU. Além disso, é capaz de se adaptar à carga geral do sistema de forma dinâmica e rápida. O controle da quantidade de CPU utilizada é feito através do envio sinais PRÓXIMA PARADA y PRÓXIMO CONTEÚDO POSIX aos processos. Todos os processos filho e threads do processo especificado compartilharão a mesma porcentagem de CPU.

Instale CPULimit

CPULimit é disponível na maioria dos repositórios padrão de distribuições do tipo Unix. Podemos instalá-lo usando os gerenciadores de pacotes padrão na respectiva distribuição Gnu / Linux. Para o exemplo em mãos, veremos como instalá-lo no Debian, Ubuntu e Linux Mint. Teremos apenas que abrir um terminal (Ctrl + Alt + T) e escrever o seguinte comando nele:

sudo apt-get install cpulimit

Quem quiser pode consultar outros tipos de instalações no página do projeto GitHub.

Usando CPULimit

Assim que a ferramenta estiver instalada, é hora de ver como funciona. Para fazer isso, vamos executar um programa que consome muitos recursos da CPU. Os comandos a seguir devem ser executados como usuário root.

Criação de um script que consome recursos da CPU

Primeiro vamos crie um arquivo chamado derrochecpu.sh. Vou usar o Editor Vim, mas deixe que todos usem o que preferirem. Do terminal (Ctrl + Alt + T) teremos que escrever:

vim derrochecpu.sh

Uma vez aberto, vamos pressionar a tecla 'Esc' e depois 'i'. Agora vamos adicionar as seguintes linhas:

vim script splurgecpu

#!/bin/bash
while :; do :; done;

Feito isso, é hora de salvar e sair. Para fazer isso, vamos pressionar a tecla 'Esc'e vamos escrever : wq para salvar e fechar o arquivo. Este pequeno script se repetirá continuamente, consumindo o uso máximo da CPU. Portanto, é aconselhável testá-lo em uma máquina virtual.

Agora vamos tornar este arquivo executável. Para fazer isso, a partir do mesmo terminal (Ctrl + Alt + T) iremos executar:

chmod +x derrochecpu.sh

Iniciando o script

Agora vamos lançar o processo em segundo plano. Faremos isso usando o comando:

./derrochecpu.sh &

PID script splurgeCPU

Vamos manter o PID do processo. Nesse caso, 6472 é o PID do processo iniciado.

Verificar quanta CPU consome

Podemos ver a quantidade de CPU que o processo que acabamos de lançar consome, usando o comando «topo» no mesmo terminal:

top script splurgeCPU

top

Como pode ser visto na imagem acima, o processo wastecpu.sh consome mais de 96% do uso da CPU. Uma vez que consome muito uso da CPU, é difícil executar outras tarefas. Depois de alguns minutos, o sistema pode falhar ou congelar. É aqui que a CPULimt vem em nosso auxílio.

Limitando o uso da CPU por PID

Agora, vamos limitar o uso da CPU desse processo usando a ferramenta CPULimit. Vamos a limitar o uso da CPU em 35% por meio de seu PID correspondente (aproximadamente). Para fazer isso, execute:

cpulimit -l 35 -p 6472 &
  • Opção "-l 35»Limita o processo a aproximadamente 35%.
  • «-p 6472»É o PID de derrochecpu.sh que vimos antes.

Verificando o efeito do CPULimit

Uma vez que o comando anterior foi lançado, vamos verificar o uso da CPU do processo novamente. Para isso, usaremos o comando top novamente:

top script CPULimit desperdiçado

top

Como você pode ver na imagem acima, o uso da CPU de wastefulcpu.sh caiu para 35,6%, o que é muito próximo a 35%. Agora já podemos ter mais recursos da CPU para executar outros processos.

Limitando o uso da CPU por nome de arquivo

Vimos como limitar um processo usando o PID. Também podemos executar o comando CPULimit especificando o nome do arquivo executável do programa.

Por exemplo, o mesmo exemplo acima seria:

cpulimit -l 30 ./derrochecpu.sh &

CPULimit pode ser útil ao executar um processo que está consumindo muito uso da CPU. Da próxima vez que notarmos que um programa consome muita CPU, simplesmente teremos que encontrar o PID do processo usando o comando «topo«. Quando você tiver isso, você só precisa limitar o uso da CPU a um valor mínimo usando o comando CPULimit conforme descrito neste artigo.

Desinstalar CPULimit

Remover esta ferramenta de nosso sistema é tão simples quanto abrir um terminal (Ctrl + Alt + T) e digitar nele:

sudo apt remove cpulimit

O que este artigo descreveu é apenas um exemplo. Obviamente, ninguém em sã consciência iniciará um script como o descrito aqui em seu próprio computador.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Javp dito

    Olá:
    É perfeito para um PC antigo que tenho com um amd64 x2 que parece ter um problema de resfriamento e quando um processo consome muita CPU por vários minutos, ele aquece até 100ºC e desliga.
    Assim, quando vejo que um processo (geralmente alguns sites ou programas de renderização de vídeo) está me fazendo aumentar a temperatura da CPU, usarei cpulimit para remover a "energia" desse processo.
    obrigado