Redis err max number of clients reached 解决办法

本文介绍了解决Redis连接达到上限的问题,通过调整系统最大文件描述符限制来提高并发能力。

在使用redis的过程中碰到了err max number of clients reached的异常。
从字面上来看就是连接的客户端达到了上限,但是通过google发现,redis配置文件中默认最大的连接数是没有限制的,看了很多的文章,最终通过修改系统的最大文件描述符解决办法。


这里可以查看下系统的最大文件描述符再来修改:

1、查看redis的PID

# ps -ef|grep redis
root     23427 21683  0 19:08 pts/0    00:00:00 grep redis
root     31886     1  0 11:30 ?        00:00:00 /usr/local/bin/redis-server /data/redis/6379/redis6379.conf

2、查看redis进程的文件描述符最大值

# cat /proc/31886/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            10485760             unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             65535                65535                processes 
Max open files            65535                65535                files     
Max locked memory         32768                32768                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       35840                35840                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0    

Max open files这里显示的是65535,是我修改之后的数值,原来的是4021,用来做数据的缓存有点小。


下面是修改的过程:

首先修改 /etc/security/limits.conf 文件,在文件最后面添加下面4行。
表示root用户和其余非root用户打开的文件描述符的限制都是65535。

root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535

在redhat系列下可能设置了这个然后重启机器或者重新登陆就有用了,但是ubuntu下不行。还要设置另外两个配置文件。

修改/etc/pam.d/su 和 /etc/pam.d/sudo,两个文件都添加下面一行

session    required   pam_limits.so

设置完成后就重新启动一下机器吧。

再次通过查看proc下面的进程信息,发现设置生效了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值