Não é possível aumentar o limite de arquivos abertos além de 999.999 em 14.04+

Não é possível aumentar o limite de arquivos abertos além de 999.999 em 14.04+

Estou tentando aumentar o limite de arquivos abertos para usuários root e também para usuários não root via /etc/security/limits.conf. Mas, não consigo passar 999999, qualquer coisa acima desse valor volta ao padrão 1024e não posso defini-lo como ilimitado

Aqui está o meulimits.conf

* hard nofile 999999
* hard nofile 999999
root hard nofile 999999
root soft nofile 999999

O procedimento acima funciona bem e ulimit -nretorna 999999.

Mas, se eu aumentar o valor um degrau acima ou para unlimitedou -1ou infinitynão funciona. ulimit -nretornar1024

Referi aqui:limites.conf - arquivo de configuração para o módulo pam_limits | Página de manual do Ubuntu

Obrigado

Responder1

Eu sei que está 10 meses atrasado, mas você definiu o limite máximo duas vezes para todos os usuários. Altere a segunda linha para um ulimit flexível.

* hard nofile 999999
* soft nofile 999999
root hard nofile 999999
root soft nofile 999999

Depois de fazer isso você deverá ver:

$ ulimit -n
999999
$ 

Seu arquivo sempre deveria ter funcionado para root, pois os limites foram definidos corretamente.

Além disso, você não pode usar -1, infinito, ilimitado ou algo semelhante, você deve usar um valor literal. O valor máximo suportado para isso é definido no kernel e exposto em /proc/sys/fs/nr_open. Em meus ambientes centos 7 e debian strech, obtenho o mesmo valor:

$ cat /proc/sys/fs/nr_open
1048576
$

Você também precisa iniciar uma nova sessão para que os limites sejam atualizados.

Responder2

Existem três arquivos a serem modificados para que isso funcione:

  • /etc/security/limits.conf
  • /etc/pam.d/common-session
  • /etc/pam.d/common-session-noninteractive

Você já adicionou as linhas necessárias no primeiro arquivo, então nos outros dois arquivos esta linha é necessária:

session required pam_limits.so

Observe:

O que a maioria dos recursos deixa de enfatizar é que seus limites podem ser facilmente modificados por qualquer pessoa responsável pela execução de seus processos. Se ulimit -n (executado como o usuário correto) estiver fornecendo o número que você acabou de definir, mas cat /proc/{process_id}/limits ainda estiver imprimindo o número baixo, é quase certo que você tenha um gerenciador de processos, um script de inicialização ou algo semelhante bagunçando seus limites. Você também precisa ter em mente que os processos herdam os limites do processo pai.

Portanto, se tal processo existir, você terá que modificar o arquivo de configuração para fazê-lo funcionar.

Fonte: https://underyx.me/2015/05/18/raising-the-maximum-number-of-file-descriptors

informação relacionada