Назад | Перейти на главную страницу

Debian 8.4 jessie установил ограничение на количество открытых файлов для пользователя Redis

При запуске redis 3.0.6 (установленного из jessie-backports) под Debian 8.4 jessie я получаю следующее предупреждение / ошибку:

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'.

При беге ulimit -n как root я получаю:

65536

Предел открытых файлов для пользователя 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

Как увеличить лимит открытых файлов для пользователя Redis, чтобы он мог установить соответствующий лимит для параметра maxclients? Я пробовал редактировать /etc/security/limits.conf и sysctl -w fs.file-max=2459017, но ни один из них не работал у пользователя redis.

limits.conf не применяется к службам systemd (https://bugzilla.redhat.com/show_bug.cgi?id=754285)

поэтому вам следует:

  1. отредактируйте /lib/systemd/system/redis-server.service и добавьте в раздел [Service] строку (после: User=redis и Group=redis) LimitNOFILE=65536

  2. бегать: systemctl daemon-reload && systemctl restart redis-server

и ... он должен получить новый лимит

чек: https://sskaje.me/systemd-ulimit/

удачи!