Ao iniciar o redis 3.0.6 (instalado a partir de jessie-backports) no Debian 8.4 jessie, recebo o seguinte aviso/erro:
18127:M 13 Apr 15:12:38.730 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
18127:M 13 Apr 15:12:38.730 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.
18127:M 13 Apr 15:12:38.730 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
Ao executar ulimit -n
como root, recebo:
65536
O limite de arquivo aberto para o usuário redis:
$ ps -u redis
PID TTY TIME CMD
18127 ? 00:00:00 redis-server
$ sudo grep 'open files' /proc/18127/limits
Max open files 4096 4096 files
Como faço para aumentar o limite de arquivos abertos para o usuário redis, para que ele possa definir o limite apropriado para a configuração maxclients? Eu tentei editar /etc/security/limits.conf
e sysctl -w fs.file-max=2459017
, mas nenhum realmente funcionou para o usuário redis.
limit.conf não se aplica a serviços systemd ( https://bugzilla.redhat.com/show_bug.cgi?id=754285 )
então você deveria:
edite /lib/systemd/system/redis-server.service e adicione à seção [Service] a linha (após:
User=redis
eGroup=redis
)LimitNOFILE=65536
corre:
systemctl daemon-reload && systemctl restart redis-server
e ... deve obter o novo limite
verifique: https://sskaje.me/systemd-ulimit/
boa sorte!