“ulimit” é um interessante comando da shell Linux que pode definir ou reportar o limite de recursos do usuário atual.

Obviamente, devido à sua natureza, trabalhar com “ulimit” requer acesso de administrador (ao alterar o valor). Além disso, ele só funcionará em sistemas que permitem o controle através da shell. Sem mais demoras, vamos começar com “ulimit”!

Agenda o terminal e execute o seguinte comando.

que ulimit

Isto mostra um erro, certo? Porquê? É porque “ulimit” não é um binário separado. Está embutido na própria shell.

Basic usage

Just run the command by itself.

ulimit

Como a saída sugere, o usuário atual tem uma quantidade “ilimitada” de recursos a serem acessados. Essencialmente, isto significa que o usuário atual pode consumir todos os recursos que o sistema atual suporta.

Para obter o relatório em detalhes, adicione a bandeira “-a” no final. Isto irá imprimir todos os limites de recursos para o usuário atual.

ulimit -a

Nota: Existem 2 tipos de limitação de recursos: “dura” e “suave”. O limite de recursos rígidos define o limite físico que o usuário pode atingir. O limite de recursos “suave” é controlável pelo usuário. Seu valor pode ir até o limite “hard”.

Os recursos do sistema são definidos em um arquivo de configuração localizado em “/etc/security/limits.conf”. O “ulimit”, quando chamado, irá reportar estes valores.

cat /etc/security/limits.conf

Verificando diferentes limites de um usuário

Que tal exibir os parâmetros individuais? Então chame “ulimit” com os respectivos parâmetros.

Nota: Nem todos estes comandos funcionarão, pois nem todos os sistemas incorporam as características.

Para verificar o valor do “tamanho máximo do arquivo central”, use a bandeira “-c”. O resultado será mostrado em blocos.

ulimit -c

Para o máximo “tamanho do segmento de dados” (em kilobytes), use a bandeira “-d”.

ulimit -d

No agendamento, a prioridade é importante. Verifique a prioridade máxima de programação do usuário atual com a ajuda da bandeira “-e”.

ulimit -e

Para verificar o tamanho máximo da pilha do usuário atual, use a bandeira “-s”.

ulimit -s

Para o número máximo de processos do usuário, use a bandeira “-u”.

ulimit -u

Para o número máximo de processos, use a bandeira “-T”.

ulimit -T

Para obter o tamanho da memória virtual, use a seguinte.

ulimit -v

Vamos ver o tamanho do buffer do soquete!

ulimit -b

Este é um buffer interessante. O seguinte comando irá relatar o tempo de execução de cada processo para.

=ulimit -t

Os descritores de arquivo são outra parte interessante do ecossistema Linux. Para verificar quantos descritores de arquivo um processo pode ter, execute o seguinte.

ulimit -n

Para a lista completa de bandeiras “ulimit”, confira a página de ajuda de “ulimit”.

ulimit –ajuda

Ajustar valores

Até agora, vimos como verificar os valores dos limites de recursos do sistema atual. Agora, é hora de ver como modificar manualmente esses valores.

Nota: Para alterar o limite “rígido”, será necessário o acesso do administrador, ou seja, a permissão de “root”. Certifique-se de não estragar as coisas!

Mencionámos o ficheiro “limit.conf”, certo? É o núcleo que DEFINE todos os limites que serão aplicáveis aos utilizadores.

sudo vim /etc/security/limits.conf

Como mostrado no ficheiro, cada entrada tem de seguir a seguinte estrutura.

<domínio> <tipo> <item> <valor>

A parte “domínio” pode ser qualquer um destes valores.

  • Um usuário específico
  • Um grupo
  • Wildcard (* e %)

A parte “tipo” permite os seguintes valores.

  • “soft” (para implementação de limites soft)
  • “hard” (para implementação de limites hard)

Próximo, a parte “item”. A lista de opções disponíveis é bastante longa! Aqui estão algumas das interessantes.

  • core: Tamanho do arquivo principal (em KB).
  • dados: Tamanho máximo dos dados (em KB)
  • dados: Tamanho máximo do ficheiro (em KB).
  • memlock: Máximo espaço de endereço na memória (em KB).
  • nofile: Número máximo de descritores de ficheiro
  • stack: Tamanho máximo da pilha (em KB).
  • cpu: Tempo máximo da CPU (em MIN).
  • maxlogins: Número máximo de logins para o usuário/grupo atual
  • prioridade: Definir a prioridade dos processos do usuário
  • rtprio: Prioridade máxima em tempo real.

Como do campo “valor”, coloque um valor inteiro. Note que a unidade de cada campo está associada ao valor da parte “item”.

As mudanças entrarão em vigor depois de sair e voltar a logar na conta do usuário associado.

Para informações detalhadas sobre o arquivo de configuração “limits.conf”, verifique sua página man.

man limits.conf

Pensamentos finais

Deixe uma resposta

O seu endereço de email não será publicado.