我在 redis.log 文件的顶部看到了这个错误:
当前最大打开文件数为 1024。maxclients 已减少到 4064 以补偿较低的 ulimit。
我已按照以下步骤操作(并重新启动):
此外,我在运行时看到了这一点ulimit
:
ubuntu@ip-XX-XXX-XXX-XXX:~$ ulimit -n
65535
Run Code Online (Sandbox Code Playgroud)
这个错误似是而非吗?如果没有,我还需要执行哪些其他步骤?我在 Ubuntu LTS 14.04.1(再次,树尖)上运行 redis 2.8.13(树尖)。
这是用户信息:
ubuntu@ip-XX-XXX-XXX-XXX:~$ ps aux | grep redis
root 1027 0.0 0.0 66328 2112 ? Ss 20:30 0:00 sudo -u ubuntu /usr/local/bin/redis-server /etc/redis/redis.conf
ubuntu 1107 19.2 48.8 7629152 7531552 ? Sl 20:30 2:21 /usr/local/bin/redis-server *:6379
Run Code Online (Sandbox Code Playgroud)
因此,服务器作为 ubuntu 运行。
这是我的limits.conf文件,没有注释:
ubuntu@ip-XX-XXX-XXX-XXX:~$ cat /etc/security/limits.conf | sed '/^#/d;/^$/d'
ubuntu soft nofile 65535
ubuntu hard nofile 65535
root soft nofile 65535
root hard nofile 65535
Run Code Online (Sandbox Code Playgroud)
这是 sysctl fs.file-max 的输出:
ubuntu@ip-XX-XXX-XXX-XXX:~$ sysctl -a| grep fs.file-max
sysctl: permission denied on key 'fs.protected_hardlinks'
sysctl: permission denied on key 'fs.protected_symlinks'
fs.file-max = 1528687
sysctl: permission denied on key 'kernel.cad_pid'
sysctl: permission denied on key 'kernel.usermodehelper.bset'
sysctl: permission denied on key 'kernel.usermodehelper.inheritable'
sysctl: permission denied on key 'net.ipv4.tcp_fastopen_key'
Run Code Online (Sandbox Code Playgroud)
作为须藤
ubuntu@ip-10-102-154-226:~$ sudo sysctl -a| grep fs.file-max
fs.file-max = 1528687
Run Code Online (Sandbox Code Playgroud)
另外,我在 redis.log 文件的顶部看到了这个错误,不确定它是否相关。ubuntu 用户不允许更改最大打开文件是有道理的,但考虑到我试图设置的高 ulimit,他不需要:
[1050] 23 Aug 21:00:43.572 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
[1050] 23 Aug 21:00:43.572 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.
Run Code Online (Sandbox Code Playgroud)
您应该编辑目录中的文件/etc/pam.d/
。
在您运行时的情况下sudo -u ubuntu /usr/local/bin/redis-server
,您应该添加以下行到/etc/pam.d/sudo
或 ,/etc/pam.d/common-session-noninteractive
以防/etc/pam.d/sudo
包含这一行:
session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)
这应该有助于设置内部提供的配置/etc/security/limits.conf
。
归档时间: |
|
查看次数: |
23789 次 |
最近记录: |