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 1024
e 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 -n
retorna 999999
.
Mas, se eu aumentar o valor um degrau acima ou para unlimited
ou -1
ou infinity
não funciona. ulimit -n
retornar1024
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