Ubuntu: Não é possível alterar o limite de número de arquivos abertos para root (todos os usuários), qual poderia ser o motivo?

1

Eu tenho um servidor Ubuntu 16.04.

Quando eu executo como root, ulimit -n recebo 1024.

Quando eu executo como meu usuário, fico com 65535.

Mas quero ter certeza de que todos os usuários, incluindo root, tenham o limite de arquivos abertos definido como 65535.

O problema é que eu fiz tudo o que sei para mudar isso e ainda, para root ele mostra 1024.

Aqui estão as coisas que fiz:

root@sensu:/etc/security/limits.d# cat 90-nofiles.conf
* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

root@sensu:/etc/security# grep nofile limits.conf
#        - nofile - max number of open files
*   soft     nofile         65535
*   hard     nofile         65535

root@sensu:/etc/security# grep file-max  /etc/sysctl.conf
fs.file-max = 65536

Claro que corri sysctl -p .

O processo problemático é redis:

root@sensu:/proc# grep "open files" /proc/1487/limits
Max open files            4096                 4096                 files

Olhando para o arquivo init do redis:

root@sensu:/proc# grep ulimit /etc/init.d/redis-server
    ulimit -n 100001

Como você vê nos exemplos, não há razão para que este limite seja 1024 e ainda assim ... é 1024.

Qual poderia ser o motivo? Onde está essa configuração que eu sinto falta?

    
por Itai Ganot 20.02.2017 / 14:14

1 resposta

3

Eu encontrei a resposta em este post de stackoverflow .

Parece adicionar:

* soft     nofile         65535
* hard     nofile         65535 

É o suficiente ao editar o limite para usuários não-root.

Mas, para alterar também os limites do usuário root, ele deve ser adicionado explicitamente:

root soft     nofile         65535
root hard     nofile         65535

Agora funciona como pretendido:

root@sensu:~# ulimit -n
65535
    
por 20.02.2017 / 14:22