Debian

Debian 8.4 jessie 為 redis 使用者設置打開文件限制

  • April 13, 2016

在 Debian 8.4 jessie 下啟動 redis 3.0.6(從 jessie-backports 安裝)時,我收到以下警告/錯誤:

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

以 root 身份執行時ulimit -n,我得到:

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.confand 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=redisLimitNOFILE=65536 2. 跑:systemctl daemon-reload && systemctl restart redis-server

並且……它應該得到新的限制

檢查:https ://sskaje.me/systemd-ulimit/

祝你好運!

引用自:https://serverfault.com/questions/770037