Como limitar o uso de CPU de um processo no Linux com cpulimit

Quando você está trabalhando em um sistema Linux, vários processos são executados em segundo plano. Esses processos consomem recursos do sistema na forma de tempo e uso da CPU.

Embora, na maioria das situações, o sistema operacional gerencie esses processos automaticamente, às vezes um processo que consome muitos recursos pode sobrecarregar a CPU devido ao processamento pesado ou ao desenvolvimento insuficiente. A resposta geralmente é eliminar o processo diretamente ou limitar o uso da CPU a um determinado limite.

Felizmente, no Linux, você pode limitar o uso da CPU de um processo usando um utilitário de linha de comando chamado cpulimit .

Como identificar um processo com alto uso da CPU

Antes de limitar a porcentagem de recursos do sistema que um processo pode usar, você precisa encontrar o ID do processo desse processo específico. Um ID de processo (ou PID) é um número exclusivo que seu sistema usa para identificar um processo.

No Linux, existem várias maneiras de obter informações detalhadas relacionadas aos processos. Você pode usar o comando top para obter uma lista dos processos atualmente em execução em seu sistema.

 top

Resultado:

A coluna % CPU mostra a porcentagem de CPU que o processo específico está usando. Se o seu computador estiver tentando processar mais dados do que pode, algum processo específico terá um uso da CPU de 100%. Verifique a tabela para ver se há algum processo com alto uso da CPU.

Depois de encontrar o processo com alto uso da CPU, anote seu PID. O ID do processo é importante para limitar o uso do processo.

Limite o uso da CPU com cpulimit

Conforme mencionado acima, cpulimit é um utilitário de linha de comando que adiciona um limite à quantidade de recursos do sistema usados ​​por um processo específico em seu computador. Como a maioria das distribuições do Linux não vem com o cpulimit pré-instalado, você terá que instalá-lo manualmente.

Você pode instalar o pacote no Ubuntu e outras distribuições baseadas em Debian da seguinte maneira:

 sudo apt install cpulimit

Em distribuições baseadas em Arch como Manjaro Linux:

 sudo pacman -S cpulimit

Cpulimit está disponível no repositório EPEL (Extra Packages for Enterprise Linux). Portanto, para instalá-lo nas distribuições CentOS e RHEL, você terá que habilitar o repositório EPEL primeiro.

 yum install epel-release
yum install cpulimit

Sintaxe Básica

Para usar cpulimit, você terá que passar um dos três argumentos a seguir com o comando:

  1. -p ou –pid : o ID do processo de um processo
  2. -e ou –exe : O nome do arquivo executável
  3. -p ou –path : caminho absoluto do arquivo executável

A sintaxe básica do comando é:

 cpulimit -p pid
cpulimit -e executablename
cpulimit -p /path-to-executable

Limite o uso de CPU de um processo

Você pode usar o sinalizador –limit ou -l do utilitário cpulimit para adicionar um limite aos recursos que um processo pode usar. Para forçar um processo com PID 81550 a usar apenas 50% da CPU:

 sudo cpulimit -p 81550 --limit 50

Aqui, cpulimit restringirá o uso da CPU do processo enquanto estiver em execução. Se você interromper a execução de cpulimit, o uso da CPU desse processo específico voltará ao normal.

Uma ótima solução para evitar esse problema é executar cpulimit em segundo plano. Você pode adicionar o sinalizador –background ou -b com o comando para enviar o comando para o segundo plano .

 sudo cpulimit -p 81550 --limit 50 --background

Se a opção –background não funcionar, você pode adicionar um E comercial ( & ) após o comando para enviá-lo para o plano de fundo.

 sudo cpulimit -p 81550 --limit 50 &

Use o comando superior para verificar se o comando mencionado funciona.

Como você deve ter notado, o uso da CPU do comando dd caiu para 48,8%.

Matar um processo usando seu PID

Em vez de limitar o uso da CPU, você pode encerrar completamente o processo eliminando-o com o sinalizador –kill .

 sudo cpulimit -p 81550 --limit 50 --kill

Gerenciamento de processos mais inteligente no Linux

Cpulimit é um ótimo utilitário se você costuma encontrar processos com alto uso da CPU. Os usuários do GNOME que não se sentem confortáveis ​​com a linha de comando também podem usar o Monitor do Sistema para gerenciar processos em seu sistema.

Além de usar ferramentas como cpulimit, você também pode diminuir a prioridade no Linux para fornecer menos recursos a um processo específico. Os comandos nice e renice são um salva-vidas quando se trata de gerenciar a prioridade de processos no Linux.