Como limitar o uso de CPU de um processo específico pelo terminal
Fala, aluno(a)! 👋 Se você chegou até aqui, provavelmente notou que algum processo — um script seu, uma automação, um comando de importação — está "comendo" muito processador e deixando tudo mais lento. Respira fundo que a Sensei vai te ensinar, com calma, como colocar esse processo na coleira certa usando o próprio terminal (SSH).
Antes de tudo: o acesso SSH depende do seu plano de hospedagem. Se o comando ssh não conectar ou você não tiver as credenciais, dá uma olhada no painel.gehost.com.br ou fale com o suporte para confirmar se o SSH está disponível na sua conta.
1. Descubra qual processo está pesando
Conectado via SSH, o primeiro passo é identificar exatamente quem é o "vilão". Use:
-
Digite o comando abaixo para ver os processos em tempo real, ordenados por consumo de CPU:
top
(Se preferir uma versão mais colorida e amigável, e ela estiver disponível no seu ambiente, experimente
htop.) -
Anote o PID (número de identificação do processo) que aparece na primeira coluna do processo que está consumindo mais CPU.
-
Para sair do
top, aperte a tecla q.
2. Opção simples: ajustar a prioridade com nice e renice
Todo processo em Linux tem uma "prioridade de escalonamento". Quanto mais educado (nice) ele for, menos ele disputa CPU com os outros. Essa é a forma mais simples e mais compatível de reduzir o impacto de um processo, mesmo sem privilégios de administrador.
Se o processo ainda vai começar
Inicie ele já com prioridade mais baixa, colocando nice na frente do comando:
nice -n 15 ./meu-script.sh
Quanto maior o número (a escala vai até 19), menor a prioridade — ou seja, mais "gentil" o processo será com o processador.
Se o processo já está rodando
Use o renice com o PID que você anotou no passo 1:
renice -n 15 -p 1234
Troque 1234 pelo PID real do seu processo. Pronto — a prioridade dele é ajustada na hora, sem precisar reiniciar nada.
Dica da Sensei: como usuário comum (sem acesso root), você só consegue diminuir a prioridade de processos que são seus — o que já resolve a maioria dos casos de "processo comendo CPU demais".
3. Opção avançada: limitar por porcentagem com cpulimit
Se você precisa de algo mais preciso — por exemplo, travar um processo em no máximo 20% de um núcleo de CPU — a ferramenta ideal é o cpulimit. Ela funciona pausando e retomando o processo automaticamente para manter o limite definido.
-
Verifique se ela está disponível no seu ambiente:
which cpulimit
-
Se aparecer um caminho (ex.:
/usr/bin/cpulimit), você pode usá-la assim:cpulimit -p 1234 -l 20
Isso limita o processo de PID
1234a aproximadamente 20% de uso de CPU. -
Se o comando não for encontrado, ela provavelmente não está instalada no seu ambiente de hospedagem. Como planos de hospedagem compartilhada não permitem instalação de pacotes pelo próprio cliente, nesse caso o caminho é abrir um chamado com o suporte explicando o que você precisa limitar — nossa equipe avalia a melhor forma de te ajudar.
4. Encerrando um processo que fugiu do controle
Às vezes o mais sensato é simplesmente parar o processo problemático em vez de só limitá-lo. Com o PID em mãos:
kill 1234
Se ele insistir em não parar, use a versão mais firme (só como último recurso):
kill -9 1234
Resumo rápido
- Quer só reduzir a prioridade? Use
nice(ao iniciar) ourenice(já rodando). - Quer um limite exato em porcentagem? Use
cpulimit, se disponível no seu ambiente. - Quer parar de vez? Use
kill.
Importante: esses comandos atuam sobre processos que rodam sob o seu próprio usuário. Se mesmo depois de aplicar essas dicas o consumo de CPU continuar alto ou instável, é sinal de que vale a pena revisar o script/automação em si — e, claro, nosso suporte está sempre à disposição para te ajudar a investigar junto. 💛