CentOS启动Redis 5.0.3出现WARNING的解决办法

问题描述:最近在安装Redis,启动Redis-server出现如下错误:

WARNING:The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
4408:M 06 Jan 2019 19:57:13.491 # Server initialized
4408:M 06 Jan 2019 19:57:13.491 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory=1'to /etc/sysctl.conf and then reboot  or run the command 'sysctl vm.overcommit_memory=1' for this to take effort.
4408:M 06 Jan 2019 19:57:13.513 * DB loaded from disk:0.022 seconds
4408:M 06 Jan 2019 19:57:13.514 * Ready to accept connections

解决方法

第一个警告:The TCP backlog setting of 511 cannot be enforced......,大概意思是说net.core.somaxconn参数值为128太小了,需要修改。

首先我们需要知道net.core.somaxconn是什么意思。

net.core.somaxconn是Linux中的一个kernel(内核)参数,表示socket监听(listen)的backlog上限。什么是backlog?backlog就是socket监听队列,当一个请求(request)尚未被处理或者建立的时,它会进入backlog。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。当server处理请求较慢,以至于监听队列填满后,新来的请求会被拒绝。

知道了net.core.somaxconn的意思,接下来我们需要修改这个参数的大小:

方法一:临时设置生效: sysctl -w net.core.somaxconn=1024

方法二:永久设置生效:打开/etc/sysctl.conf文件,在该文件中增加一行net.core.somaxconn=1024,最后执行命令sysctl -p即可。

 

第二个警告:WARNING overcommit_memory is set to 0! Background save may fail under low memory condition.....

意思大概是overcommit_memory被设置为0,在低内存的情况下,后台保存会失败,所以解决办法是:

方法一:在/etc/sysctl.conf文件中添加vm.overcommit_memory=1,然后执行命令sysctl -p   (永久有效)

方法二:输入命令 sysctl -w  vm.overcommit_memory=1 ,只对当前启动的redis-server有效(临时有效)

 

补充:overcommit_memory的含义:

overcommit_memory参数说明: 设置内存分配策略(可选,根据服务器的实际情况进行设置) /proc/sys/vm/overcommit_memory 可选值:0、1、2。

0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

注意:redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为8G,这个时候也要同样分配8G的内存给child,如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)。

参考文章:(1)https://blog.csdn.net/jiangshouzhuang/article/details/50864933

                  (2)http://blog.51cto.com/lookingdream/1933132

                   (3)https://blog.csdn.net/mawming/article/details/51952411

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值