Pesquisa de site

Como definir limites para processos em execução do usuário no Linux


Uma das belezas do Linux é que você pode controlar quase tudo nele. Isso dá ao administrador do sistema um grande controle sobre o sistema e uma melhor utilização dos recursos do sistema.

Embora alguns possam nunca ter pensado em fazer isso, é importante saber que no Linux você pode limitar a quantidade de recursos que um único usuário pode usar e por quanto tempo.

Leia também: Como aumentar o limite do número de arquivos abertos no Linux

Neste breve tópico mostraremos como limitar o número de processos iniciados pelo usuário e como verificar os limites atuais e modificá-los.

Antes de prosseguirmos, há duas coisas que precisamos apontar:

  1. Você precisa de acesso root ao seu sistema para modificar os limites do usuário
  2. Você deve ser extremamente cuidadoso se planeja modificar esses limites

Para configurar limites de usuários, precisaremos editar o seguinte arquivo:


/etc/security/limits.conf

Este arquivo é usado para aplicar o ulimit criado pelo pam_module.

O arquivo possui a seguinte sintaxe:

<domain> <type> <item> <value>

Aqui pararemos para discutir cada uma das opções:

  • Domínio – inclui nomes de usuário, grupos, intervalos de guias, etc.
  • Tipo – limites flexíveis e rígidos
  • Item – o item que será limitado – tamanho do núcleo, tamanho do arquivo,  nproc etc.
  • Valor – este é o valor para o limite determinado

Uma boa amostra para um limite é:

@student          hard           nproc                20

A linha acima define um limite máximo de 20 processos no grupo "student".

Se você quiser ver os limites de um determinado processo, basta “cat” o arquivo de limites da seguinte forma:


cat /proc/PID/limits

Onde PID é o ID real do processo, você pode descobrir o ID do processo usando o comando ps. Para uma explicação mais detalhada, leia nosso artigo que diz – Encontre processos Linux em execução e defina limites de processo por nível de usuário

Então aqui está um exemplo:


cat /proc/2497/limits
Saída de amostra

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             32042                32042                processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       32042                32042                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us   

Todas as linhas são praticamente autoexplicativas. No entanto, se você quiser encontrar mais configurações que pode inserir no arquivo limits.conf, você pode dar uma olhada no manual fornecido aqui.

Se você tiver alguma dúvida ou comentário, não hesite em enviá-los na seção de comentários abaixo.