Como limitar o tempo e o uso da memória dos processos no Linux

Como limitar o tempo e o uso da memória dos processos no Linux

O tempo esgotado O script é um programa útil de monitoramento de recursos para limitar o tempo e o consumo de memória de processos no Linux. Ele permite que você execute programas sob controle e faça cumprir os limites de tempo e memória, encerrando o programa após a violação desses parâmetros.

Nenhuma instalação necessária, basta executar um comando junto com seus argumentos usando tempo esgotado programa e monitorará a memória e o consumo de tempo do comando, interrompendo o processo se ele sair dos limites e notificar você com a mensagem predefinida.

Para executar este script, você deve ter Perl 5 Instalado no seu sistema Linux e o sistema de arquivos /Proc montado.

Para verificar a versão instalada de Perl No seu sistema Linux, execute o seguinte comando.

$ perl -v 
Verifique a versão perl no Linux

Em seguida, clone o tempo esgotado repositório para o seu sistema usando o comando git e depois mova -se para o repositório local usando o comando CD e invocará como um comando linux usual.

$ cd ~/bin $ git clone https: // github.com/pshved/timeout.Git $ CD Timeout 

Vamos agora ver como tempo esgotado Script funciona.

Limitação básica da memória (100m de memória virtual):

Este primeiro exemplo mostra como limitar o uso de memória de um processo a 100m de memória virtual, usando o -m bandeira. A unidade padrão para memória está em Kilobytes.

Aqui, o comando estresse-ng executa 4 estressores virtuais de memória (VMS) que se combinam para usar 40% da memória disponível por 10 minutos. Assim, cada um estressor usos 10% da memória disponível.

$ ./Timeout -M 100000 Stress -Ng --vm 4 --vm -bytes 40% -t 10m 
Limitando a memória do processo

Considerando a saída do tempo esgotado comando acima, o estresse-ng Os processos dos trabalhadores foram encerrados após apenas 1.16 segundos. Isso ocorre porque o consumo combinado de memória do Vm (438660 Kilobytes) é maior que o uso de memória virtual permitida para estresse-ng e seus processos infantis.

Limitação básica de tempo do processo:

Para permitir a limitação do tempo do processo, use o -t bandeira como mostrado.

$ ./Timeout -t 4 estresse -ng --vm 4 --vm -bytes 40% -t 10m 
Limitação de tempo do processo

No exemplo acima, quando o estresse-ng CPU+sys O tempo excede o valor definido de 4, Os processos do trabalhador são mortos.

Limitando o tempo e a memória do processo

Você também pode limitar os dois memória e tempo imediatamente o seguinte.

$ ./Timeout -t 4 -m 100000 estresse -ng --vm 4 --vm -bytes 40% -t 10m 

O tempo limite também suporta algumas opções avançadas, como --Detect-hangus, o que permite a detecção de espera.

$ ./Timeout-Detect-hangus -m 100000 estresse-ng --vm 4 --vm-bytes 40% -t 10m 

Você pode monitorar RSS (Tamanho do conjunto residente) limite de memória usando o --Memlimit-rss ou -s trocar.

$ ./Timeout -M 100000 -S Stress -Ng --vm 4 --vm -bytes 40% -t 10m 

Além disso, para retornar o código de saída ou sinal+128 de um processo, use o --confessar ou -c opção como mostrado.

$ ./Timeout -M 100000 -C Stress -Ng --vm 4 --vm -bytes 40% -t 10m 

Para obter mais informações e exemplo, consulte o tempo esgotado Repositório do Github: https: // github.com/pshved/timeout.

Você também pode encontrar esses seguintes artigos relacionados igualmente úteis:

  1. Como encontrar os 15 principais processos por uso de memória com 'top' no modo em lote
  2. CPUTOOL - Limite e controle da utilização da CPU de qualquer processo no Linux
  3. Como limitar o uso da CPU de um processo no Linux com a ferramenta CPULIMIT

O tempo esgotado O script é um programa simples de monitoramento de recursos que restringe essencialmente o consumo de tempo e memória de processos no Linux. Você pode nos dar feedback sobre o tempo esgotado script através do formulário de comentário abaixo.