Como configurar o limite do descritor do arquivo linux com fs.file-max e ulimit

5

Aplicativos de servidor em execução no Linux geralmente exigem grandes quantidades de manipuladores de arquivos abertos, por exemplo. Ulimit do HBase , limite epoll do Hadoop

Esta entrada na wiki deve servir como documentário para a configuração dos limites do arquivo Linux.

  • O que é limite soft vs. hard?
  • Como controlar o limite rígido?
  • Como controlar o limite suave?
  • O kernel fs.file-max e o usuário ulimit -n estão relacionados?

Por favor, descreva a distribuição do Linux sob a qual sua configuração é válida, pois vários fornecedores configuram as coisas de maneira diferente.

Atualizar Com base na resposta do lstvan:

Para quem quer automatizar isso, pelo menos nos servidores Ubuntu você pode colocar isso nos scripts de instalação da sua máquina:

echo 'fs.file-max = 65000' > /etc/sysctl.d/60-file-max.conf
echo '* soft nofile 65000' > /etc/security/limits.d/60-nofile-limit.conf
echo '* hard nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
echo 'root soft nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
echo 'root hard nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
    
por Maxim Veksler 01.02.2014 / 22:23

2 respostas

9

O seu sistema operacional define limites para quantos arquivos podem ser abertos por qualquer aplicativo em execução no seu host. Você pode estender os valores básicos normalmente 1024 facilmente, modificando 2 arquivos de configuração:

# vi /etc/sysctl.conf

fs.file-max = 32000

# vi /etc/security/limits.conf

youruser       soft    nofile   10000
youruser       hard    nofile   30000

Os limites hard e soft:

man 5 limits.conf

hard
for enforcing hard resource limits. These limits are set by the superuser and 
enforced by the Kernel. The user cannot raise his requirement of system resources
above such values.

soft
for enforcing soft resource limits. These limits are ones that the user
can move up or down within the permitted range by any pre-exisiting hard 
limits. The values specified with this token can be thought of as default values,
for normal system usage.

HTH

    
por 01.08.2010 / 14:44
0

Se você está aumentando os limites de arquivo no Ubuntu, você pode usar os asteriscos para indicar 'todos os usuários' para os limites de arquivos simples e rígidos. No entanto, isso não incluirá o usuário root e, portanto, você terá que defini-lo separadamente se quiser que os limites aumentados também se apliquem ao usuário root (e assim você pode definir limites diferentes "para a raiz usuário "e" para todos os outros "), assim:

* soft nofile 4096
* hard nofile 10240
root soft nofile 4096
root hard nofile 10240

Talvez seja mais limpo adicioná-los em um arquivo separado, como /etc/security/limits.d/60-nofile-limit.conf

    
por 28.01.2014 / 22:53