memcached:无法为打开文件设置rlimit错误和解决方案
时间:2020-01-09 10:42:21 来源:igfitidea点击:
我在RHEL 6/CentOS 6.x上安装memcached服务器。
但是,当使用service memcached start命令启动服务器,出现以下错误:
Starting memcached: failed to set rlimit for open files. Try running as root or requesting smaller maxconns value. [FAILED] 启动memcached:无法为打开的文件设置rlimit。 尝试以root身份运行或者请求较小的maxconns值。
如何解决此问题?
Linux附带了按进程文件和系统范围的文件系统描述符限制。
每个用户都有每个进程的文件描述符限制。
默认设置为1024,包括硬限制,该值也设置为1024。
只有root用户可以增加硬限制。
以我的经验,在启动内存缓存服务器时,您需要增加它。
有关Memcached的更多信息
memcached服务器以memcached用户身份运行。
您可以通过访问/etc/passwd文件来验证这一点,执行:
$ less /etc/passwd $ grep -i memcached /etc/passwd
缺省配置文件位于/etc/sysconfig/memcached:
$ cat /etc/sysconfig/memcached
输出示例:
PORT="11211" USER="memcached" MAXCONN="4096" CACHESIZE="256" OPTIONS="-l 192.168.1.100"
为Memcached设置每个进程的文件描述符限制
编辑/etc/security/limits.conf文件,执行:
# vi /etc/security/limits.conf
设置memcached用户的最大打开文件数,如下所示:
#"soft" for enforcing the soft limits #"hard" for enforcing hard limits # "nofile" max open file # ********************************************************************* # * Note soft limit must be >= MAXCONN value (defined in /etc/sysconfig/memcached * # ********************************************************************* # Username type item value memcached soft nofile 5000 memcached hard nofile 6144
保存并关闭文件。
您需要注销并再次登录。
现在,执行以下命令来启动memcached服务器:
# /sbin/service memcached start
请注意,您可以通过用*替换memcached来设置所有进程的全局限制,如下所示:
# Username type item value * soft nofile 5000 * hard nofile 6144