O CPULimit é um utilitário do Linux oferecido para limitar o uso de recursos de um aplicativo. É útil quando você deseja impedir que um único aplicativo atrase outros aplicativos; ou impedir que um aplicativo use um núcleo ou núcleos inteiros por um longo período de tempo.
Dito isto, o CPULimit pode não funcionar com todas as aplicações, uma vez que (essencialmente) inicia / pára os processos em intervalos para reduzir o uso da CPU (expresso em média). Isso será explicado na próxima seção.
Como funciona?
O CPULimit não foi projetado para trabalhar com aplicativos que, por exemplo, usam controle de tarefa; como eles podem ser mortos quando CPULimit envia um SIGSTOP
sinal stop ( ). Em essência, os aplicativos serão ativados / desativados rapidamente para limitar um programa a um número desejado de ciclos.
Não se preocupe – a maioria dos aplicativos funcionará. Alguns aplicativos que podem ser limitados incluem PHP, Java e Nginx.
Pré-requisitos
Para instalar o CPULimit com sucesso, você precisará de:
- Um servidor executando o CentOS 7 (somente sistemas de 64 bits).
make
,screen
Ewget
.- Acesso raiz ou
sudo
privilégios.
Instalando o CPULimit
Supondo que você tenha todos os pré-requisitos instalados, você deve conseguir passar pelo processo de instalação. Para começar, você precisará baixar o CPULimit e extrair o tarball:
cd ~
wget https://astuteinternet.dl.sourceforge.net/project/limitcpu/limitcpu/cpulimit-2.5.tar.gz
tar -xvf cpulimit-2.5.tar.gz
Quando o tarball terminar de extrair, podemos entrar no diretório recém-criado e começar a compilar o CPULimit:
cd cpulimit-2.5
Agora, corra make
para começar a compilar o CPULimit em um binário:
make
Depois que esse processo for concluído, você terá um binário no cpulimit-2.5
diretório. Para disponibilizá-lo em todo o sistema, precisaremos executar o comando abaixo:
make install
Pode levar algum tempo para ser concluído.
Configurando o CPULimit com um aplicativo
Para usar o CPULimit, precisamos saber o ID do processo. Isso é conhecido como o PID
. Ao usar top
, podemos ver uma lista de nossos processos:
top -c
Você verá uma lista de processos e deverá se parecer com o seguinte:
Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3881740 total, 191952 free, 413472 used, 3276316 buff/cache
KiB Swap: 4063228 total, 4062912 free, 316 used. 2881364 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1336 plex 35 15 1368172 67464 6668 S 0.3 1.7 155:41.58 Plex Plug-in [com.plexapp.system] /usr/lib/plexmediaserver/Resources/Plug-ins-995f1dead+
31345 root 20 0 326572 21844 12784 S 0.3 0.6 86:45.32 docker-containerd --config /var/run/docker/containerd/containerd.toml
1 root 20 0 193704 6744 4088 S 0.0 0.2 6:49.22 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
2 root 20 0 0 0 0 S 0.0 0.0 0:01.45 [kthreadd]
3 root 20 0 0 0 0 S 0.0 0.0 0:12.77 [ksoftirqd/0]
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H]
7 root rt 0 0 0 0 S 0.0 0.0 0:13.95 [migration/0]
Se quiséssemos limitar plex
, por exemplo, precisaríamos tomar nota do PID. Neste caso, é 1336
. Se quisermos limitar plex
a 15% da CPU, precisamos criar screen
e executar cpulimit
:
screen -S limitcpu
cpulimit -p 1336 -l 15
Para sair da tela, use a seguinte combinação: CTRL+ A+ D. Para entrar na tela depois de sair, basta executar o seguinte:
screen -r limitcpu
O formato geral para cpulimit
ser executado será abaixo:
cpulimit -p (PROCESS PID) -l (CPU %)
Nota : PROCESS PID
é o ID do processo e CPU %
é o limite da CPU.
Desinstalando o CPULimit
A remoção do CPULimit é simples. Execute os seguintes comandos:
cd ~/cpulimit-2.5
make deinstall