“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.
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.
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.
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.
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.
Para o máximo “tamanho do segmento de dados” (em kilobytes), use a bandeira “-d”.
No agendamento, a prioridade é importante. Verifique a prioridade máxima de programação do usuário atual com a ajuda da bandeira “-e”.
Para verificar o tamanho máximo da pilha do usuário atual, use a bandeira “-s”.
Para o número máximo de processos do usuário, use a bandeira “-u”.
Para o número máximo de processos, use a bandeira “-T”.
Para obter o tamanho da memória virtual, use a seguinte.
Vamos ver o tamanho do buffer do soquete!
Este é um buffer interessante. O seguinte comando irá relatar o tempo de execução de cada processo para.
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.
Para a lista completa de bandeiras “ulimit”, confira a página de ajuda de “ulimit”.
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.
Como mostrado no ficheiro, cada entrada tem de seguir a seguinte estrutura.
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.