Redis3.2.5配置主从服务器遇到的一些错误

注意:关闭主从服务器的防火墙

问题一:

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

解决一:

这个错误大概是说somaxconn的值128设置过小,从/proc/sys/net/core/somaxconn这个路径也可大概知道这个值的设置是关于网络连接中某个最大值的限定设置,此值表示网络连接的队列大小,在配置文件redis.conf中的“tcp-backlog 511”就配置在高并发环境下的最大队列大小,此值受限于系统的somaxconntcp_max_syn_backlog这两个值,所以应该把这两个内核参数值调大,具体解决方法如下:

$ vim /etc/sysctl.conf
$ net.core.somaxconn = 20480  #最大队列长度,应付突发的大并发连接请求,默认为128
$ net.ipv4.tcp_max_syn_backlog = 20480  #半连接队列长度,此值受限于内存大小,默认为1024
$ sysctl -p  #使参数生效

问题二:

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 effect.

解决二:

警告:过量使用内存设置为0!在低内存环境下,后台保存可能失败。为了修正这个问题,
请在/etc/sysctl.conf 添加一项 ‘vm.overcommit_memory = 1‘ ,
然后重启(或者运行命令‘sysctl vm.overcommit_memory=1‘ )使其生效。

vm.overcommit_memory不同的值说明:
0 表示检查是否有足够的内存可用,如果是,允许分配;如果内存不够,拒绝该请求,并返回一个错误给应用程序。
1 允许分配超出物理内存加上交换内存的请求
2 内核总是返回true
redis的数据回写机制分为两种

同步回写即SAVE命令。redis主进程直接写数据到磁盘。当数据量大时,这个命令将阻塞,响应时间长
异步回写即BGSAVE命令。redis 主进程fork一个子进程,复制主进程的内存并通过子进程回写数据到磁盘。
由于RDB文件写的时候fork一个子进程。相当于复制了一个内存镜像。当时系统的内存是4G,而redis占用了
近3G的内存,因此肯定会报内存无法分配。如果 「vm.overcommit_memory」设置为0,在可用内存不足的情况
下,就无法分配新的内存。如果 「vm.overcommit_memory」设置为1。 那么redis将使用交换内存。

$ vim /etc/sysctl
$ vm.overcommit_memory = 1  #末尾追加
$ sysctl -p  #参数生效
注:使用交换内存并不是一个完美的方案。最好的办法是扩大物理内存。
[[email protected] ~]# echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
[[email protected] ~]# sysctl -p

问题三:

WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled‘ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

解决三:

`Transparent Huge Pages (THP)`告警,这是一个关于透明内存巨页的话题。简单来说内存可管理的最小
单位是page,一个page通常是4kb,那1M内存就会有256个page,CPU通过内置的内存管理单元管理page表
记录。Huge Pages就是表示page的大小已超过4kb了,一般是2M到1G,它的出现主要是为了管理超大内存。
个人理解上TB的内存。而THP就是管理Huge Pages的一个抽象层次,根据一些资料显示THP会导致内存锁
影响性能,所以一般建议关闭此功能。
   “/sys/kernel/mm/transparent_hugepage/enabled”有三个值,如下:

 $ cat /sys/kernel/mm/transparent_hugepage/enabled

    always [madvise] never
    ####
    # always 尽量使用透明内存,扫描内存,有512个 4k页面可以整合,就整合成一个2M的页面
    # never 关闭,不使用透明内存
    # madvise 避免改变内存占用
$ vim /etc/rc.local
$ echo never > /sys/kernel/mm/transparent_hugepage/enabled  #在开机脚本里追加此命令

问题四:

Error condition on socket for SYNC: Connection refused

解决四:将redis的主服务器的bind修改为 bind 0.0.0.0,然后重启服务即可

问题五:

Error reply to PING from master: ‘-DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients.

解决五:

在配置文件修改主服务器的protected_mode设为no,

时间: 2024-10-21 02:29:06

Redis3.2.5配置主从服务器遇到的一些错误的相关文章

MySQL数据库配置主从服务器实现双机热备

转自:http://www.cnblogs.com/cchun/p/3712637.html 一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22  二.配置MySQL主服务器(192.168.21.169) mysql -uroot -p #进入MySQL控制台 create database osyunweidb; #建立数据库osyunweidb insert into mysql.use

Redis配置-主从服务器-phpredis-phpRedisAdmin

1.准备开发环境 yum groupinstall -y "Development Tools" "Server Platform Development" 2.更新时间 3.下载redis-3.2.1.tar.gz,网站地址是:www.redis.io 4.编译安装 tar xf redis-3.2.1.tar.gz cd redis-3.2.1 make 启动redis服务,默认的端口号是6379 注意:有时因为redis配置文件不一样的原因,我们在启动服务配置

mysql5.1.73配置主从服务器

一.安装MySQL 这里就详解,请度娘. 二.配置MySQL主服务器(10.241.226.110) mysql  -uroot  -p    #进入MySQL控制台 create database testdb;   #建立数据库testdb #授权用户mysqlcopy只能从10.241.226.111这个IP访问主服务器10.241.226.110上面的数据库,并且只具有数据库备份的权限 grant replication slave  on *.* to 'mysqlcopy'@'10.

使用简单的DataSource类配置主从服务器调用

配置三个类 大家创建这三个类,配合> https://blog.51cto.com/12133802/2418053 使用即可 DynamicDataSource类 import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; public class DynamicDataSource extends AbstractRoutingDataSource{ @Override protected Obje

日常工作问题解决:配置NTP服务器以及一些常见错误解决

1.配置NTP服务端 环境:redhat 6.5 服务器主机名 ip地址 说明 server 192.168.57.20 NTP服务端 client 192.168.57.21 NTP客户端 搭建说明: 本地server使用外网ntp源同步时间,再作为NTP服务端同步时间给本地client服务器NTP客户端 1.1 安装NTP服务 在ntp服务器查看系统是否安装NTP服务 [[email protected]~]# rpm -qa|grep ntp ntpdate-4.2.6p5-1.el6.x

配置mysql5.5主从服务器(转)

教程开始:一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22  二.配置MySQL主服务器(192.168.21.169)mysql  -uroot  -p    #进入MySQL控制台create database osyunweidb;   #建立数据库osyunweidbinsert into mysql.user(Host,User,Password) values('localhos

配置mysql5.5主从服务器

一.环境准备 mysql版本为5.5.22 192.168.21.169 mysql主服务器 192.168.21.168 mysql从服务器  二.配置MySQL主服务器(192.168.21.169) mysql  -uroot  -p    #进入MySQL控制台 create database osyunweidb;   #建立数据库osyunweidb insert into mysql.user(Host,User,Password) values('localhost','osyu

Mysql数据库优化一:集群(读写分离)之主从服务器的安装与配置

Mysql数据库的集群(读写分离),说白了就是将读操作和写操作分开在不同的服务器上实现,以达到提高效率的目的. 大致原理如下: 数据库中的所有操作都是有日志记录的(前提是要打开这个日志记录功能) 1.master,主服务器(进行写操作的服务器)的所有记录都保存到二进制日志(binary log)中,这些记录叫做二进制日志事件(binary log events): 2.slave,从服务器(进行读操作的服务器)将mater的binart log拷贝到自己的中继日志(relay log),然后根据

mysql主从服务器的配置

使用mysql主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务. 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率. 3.将主服务器上的数据复制到从服务器上,保护数据免受意外的损失. 环境描述: 新企业要搭建架构为主从复制的mysql数据库. 主服务器(mysql-master):IP地址:192.168.48.128,mysql已安装,没有用户数据. 从服务器(mysql-slave):IP地址:192.168.48