如何增加 memcached 服务的最大打开文件数

如何增加 memcached 服务的最大打开文件数

使用 ulimit -ni 可以设置每个 shell 的最大打开文件限制

为了使该值持久,我可以在 /etc/security/limits.conf 中编辑它,然后重新启动 ubuntu 12.10 框,以下是配置

*               soft    nofile          10240
*               hard    nofile          10240
root            soft    nofile          10240
root            hard    nofile          10240

但上述值没有应用到memcached服务,如何使“最大打开文件数10240”应用到memcached服务。

即使设置了 limits.conf,memcached 仍然显示

xx@xx:~$ ps aux|grep mem
mysql     2044  0.0  0.0 327436  1260 ?        Sl   17:09   0:00 /usr/bin/memcached -vv -m 256 -p 11211 -u mysql -l 0.0.0.0

xx@xx:~$ cat /proc/2044/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             30402                30402                processes
Max open files            1024                 1024                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       30402                30402                signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

请告诉我如何增加 memcached 服务的“最大打开文件数”

答案1

在 memcache 配置中,使用以下命令设置最大打开连接数:

-c 10240

listen_disabled_num您可以通过在运行时检查来检查这是否确实有必要:

echo stats | nc localhost 11211

如果最大连接数是一个问题,那么您应该看到该值大于 0。

答案2

看来memcached进程是由mysql用户启动的。尝试明确limits.conf向此用户添加规则(*应适用于除 root 之外的所有用户,但尝试起来并不需要花费太多精力...)。

mysql            soft    nofile          10240
mysql            hard    nofile          10240

此外,我认为这些限制仅在 PAM 加载时才适用。检查是否有以下行/etc/pam.d/common-session

session required pam_limits.so

如果没有,请将其添加到最后。之后您可能需要重新启动才能看到应用的更改。

相关内容