Eu tenho um servidor Ubuntu 16.04.
Quando executo como root, ulimit -n
obtenho 1024.
Quando eu o executo como meu usuário, recebo 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 já fiz de tudo para alterar e mesmo assim, pelo root dá 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 tem porque esse limite ser 1024 e mesmo assim... é 1024.
Qual seria a razão? Onde está aquela configuração que estou perdendo?
Encontrei a resposta neste post stackoverflow .
Parece que adiciona:
É suficiente ao editar o limite para usuários não root.
Mas, para alterar os limites também para o usuário root, ele deve ser adicionado explicitamente:
Agora funciona como pretendido: