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:
#!/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 &
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
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
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.
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