Como definir o valor ulimit permanentemente

Como definir o valor ulimit permanentemente

No Linux, o ULIMIT é uma ferramenta interna para gerenciar a alocação de recursos nos níveis global, de grupo e do usuário. Para um sistema multiusuário como o Linux, esse recurso é quase fundamental para ter. Pode impedir o consumo de recursos de sistema indesejados, como RAM e energia da CPU.

Confira como definir o valor ulimit permanentemente no Linux.

Valor ulimit

Ulimit aplica o limite predefinido de quanto recursos um usuário pode usar. A ferramenta usa um determinado arquivo de configuração como o núcleo para atribuir os valores ulimit. Para um controle mais ajustado, é melhor editar o arquivo.

$ cat/etc/segurança/limites.conf


Existem dois tipos de limites que podem ser impostos: limites suaves e duros. É melhor explicar esses tipos com um exemplo simples.

Digamos que um administrador do sistema gostaria que um determinado usuário pairasse em torno de um determinado valor. Aqui, o usuário pode exceder o valor, se necessário. Nesse caso, será um limite suave. Por outro lado, se o administrador quiser impor estritamente o limite, será um limite rígido.

Usando ulimit

Ulimit é uma ferramenta de linha de comando. Aqui está a estrutura básica do comando ulimit.

$ ulimit

Exibir todos os limites

A bandeira "-a" listará todas as opções e configurações para um determinado usuário. Se nenhum usuário for definido, ele imprimirá os limites para o usuário atual.

$ ulimit -a
$ ulimit -a


Para exibir os limites suaves de um usuário, use a bandeira "-s".

$ ulimit -sa


Para exibir os limites duros de um usuário, use a bandeira "-h".

$ ulimit -Ha


É possível ver os limites de um determinado processo. Os detalhes estão localizados no seguinte arquivo. Observe que é um arquivo exclusivo para cada um dos processos que estão em execução atualmente. Troque o campo PID com o PID do processo de destino.

$ cat /proc //limites

Parâmetros de limite

Para mudar o ulimit, você deve declarar que tipo de limite você gostaria de definir. Aqui está uma lista restrita com todos os parâmetros disponíveis que você pode alterar. Quase todos eles definem o valor máximo de cada um dos parâmetros.

  • B: Tamanho do buffer de soquete
  • C: Tamanho dos arquivos principais criados
  • D: Tamanho do segmento de dados do processo
  • E: Prioridade de agendamento (valor "agradável")
  • F: Número de arquivos criados pelo shell
  • I: Número de sinais pendentes
  • L: Tamanho para travar na memória
  • M: Tamanho do conjunto residente
  • N: Número de descritores de arquivos abertos
  • P: Tamanho do buffer de tubo
  • P: Número de bytes nas filas de mensagens POSIX
  • R: prioridade de agendamento em tempo real
  • S: Tamanho da pilha
  • T: hora da CPU (em segundos)
  • T: Número de threads
  • U: Número de processos disponíveis para um usuário
  • V: quantidade de memória virtual disponível para processo
  • X: Número de bloqueios de arquivo

Alterar o valor ulimit temporariamente

É possível alterar temporariamente o valor do ULIMIT para um determinado usuário. A alteração permanecerá eficaz até que o usuário seja registrado, a sessão expira ou o sistema reinicia. Aqui, mostrarei um exemplo de como definir o número do processo máximo para um usuário.

Para alterar o número de processos disponíveis para 12345, execute o seguinte comando. Isso imporá um limite rígido temporário ao usuário.

$ ulimit -u
$ ulimit -u 12345


Confira o limite rígido para verificar.

$ ulimit -hu

Alterar o valor ulimit permanentemente

Como mencionado anteriormente, o ULIMIT utiliza um arquivo de configuração do sistema que determina o valor ulimit padrão. Ao fazer alterações nesse arquivo, você pode alterar permanentemente o valor ulimit para qualquer usuário.

Abra o arquivo em seu editor de texto favorito. Observe que o arquivo deve ser aberto com permissão de raiz para que as alterações sejam salvas.

$ sudo vim/etc/segurança/limites.conf


Aqui, as entradas do arquivo seguem a seguinte estrutura.

$

Vamos ter um rápido colapso de cada um dos campos.

  • Domínio: nomes de usuário, grupos, intervalos de guia, etc.
  • Tipo: Tipo de limite (suave/duro)
  • Item: o recurso que será limitado, por exemplo, tamanho do núcleo, NPROC, tamanho do arquivo, etc.
  • Valor: o valor limite

Aqui está uma lista restrita de todos os itens disponíveis.

  • Núcleo: limita o tamanho do arquivo central (em KB)
  • CPU: tempo da CPU (em min)
  • Dados: Tamanho dos dados (em KB)
  • FSIZE: Tamanho do arquivo (em KB)
  • bloqueios: o usuário do arquivo pode segurar
  • Memlock: espaço de endereço bloqueado na memória (em KB)
  • NPROC: Número de processadores
  • RTPIO: prioridade em tempo real
  • sigpending: número de sinais pendentes

Para uma lista completa de itens disponíveis, consulte a página do homem dos limites.conf.

$ limites do homem.conf


Por exemplo, a entrada a seguir limitaria o número de núcleos da CPU que o usuário "Viktor" pode usar até 2.

$ viktor Hard NPROC 2

Uma vez editado, salve o arquivo. Para levar as mudanças em vigor, o (s) usuário (s) afetado (s) precisam fazer logon e re-login. Dependendo de como é implementado, também pode exigir que o sistema reinicie.

Pensamentos finais

A ferramenta Ulimit oferece uma maneira poderosa de gerenciar recursos. É simples, mas poderoso no que faz. Faça o que fizer, verifique se o limite que você está prestes a implementar é inserido corretamente. Se você está tentando essas coisas pela primeira vez, tente testá -las em uma máquina virtual primeiro.

Há mais no comando ulimit do que o que eu discuti aqui. Se você quiser saber mais, consulte o comando linux ulimit.

Computação feliz!