![](https://www.alaica.com/wp-content/uploads/linux-32.png)
我使用 RHEL 6/CentOS 6.x 并安装memcached 服务器。但是,当我尝试使用 service memcached start 命令启动服务器时,出现以下错误:
启动 memcached:无法为打开的文件设置 rlimit。尝试以 root 身份运行或请求较小的 maxconns 值。[失败的]
我该如何解决这个问题?
![](https://www.alaica.com/wp-content/uploads/linux-6.gif)
Linux 具有每个进程的文件和系统范围的文件系统描述符限制。每个用户都有每个进程的文件描述符限制。默认设置为 1024(包括硬限制),硬限制也设置为 1024。只有 root 用户可以增加硬限制。根据我的经验,您需要在启动 memcached 服务器时增加此值。
有关 Memcached 的更多信息
memcached 服务器以 memcached 用户身份运行。您可以通过访问/etc/passwd文件来验证这一点,输入:
默认配置文件位于/etc/sysconfig/memcached:
示例输出:
$ less /etc/passwd
$ grep -i memcached /etc/passwd
$ cat /etc/sysconfig/memcached
端口= “11211” 用户= “memcached” MAXCONN = “4096” 缓存大小= “256” 选项= “-l 192.168.1.100”
设置 Memcached 的每个进程文件描述符限制
编辑/etc/security/limits.conf文件,输入:
Set max number of open files for memcached user 如下:
# vi /etc/security/limits.conf
# “soft”用于强制执行软限制 # “hard”用于强制执行硬限制 # “nofile”最大打开文件数 # ****************************************************** ****************** # * 注意软限制必须 > = MAXCONN 值(在 /etc/sysconfig/memcached 中定义 * # ****************************************************** ****************** # 用户名类型项值 memcached 软 nofile 5000 memcached 硬 nofile 6144
保存并关闭文件。您需要注销并重新登录。现在输入以下命令来启动memcached服务器:
# /sbin/service memcached start
请注意,您可以通过将memcached替换为*来设置所有进程的全局限制,如下所示:
# 用户名类型项值 * 软 nofile 5000 * 硬 nofile 6144