1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

redis复制参数调优

Redis复制参数调优

本次测试主要对repl-backlog-size参数如何影响主从复制在断开重连之后的数据同步方式。首先在服务器上启动两台redis实例,其中6379为主。然后创建主从复制,模仿主从复制连接中断,使用防火墙模拟主从复制连接中断。在复制中断过程中,主库正常接受请求数据量约为156K。

redis复制参数调优

模拟中断恢复

模拟在中断恢复过程中主库的日志,查看恢复之后主库的日志catmaster.out。

接下来将主从实例停止并删除日志和转储文件之后重复前面的步骤将环境恢复到主从复制状态,并增大中断时候导入主库的数据量。导入数据量约为2M。再次进行中断恢复,查看恢复之后主库与从库的日志catmaster.out catslave.out。

总结

从两次的日志当中可以看出来,数据量少的时候主从连接恢复的时候,同步数据采用的是部分同步,而数据量多的时候采用的是完全同步。这是因为当中断期间主库接受的数据量小于repl-backlog-size的值就会采用部分同步,反之就会使用完全同步。repl-backlog-size的默认值为1M。

部分同步是通过向主库发送,中断前最后使用的offset和主实例ID向主库发送部分同步请求,主库首先确认ID与自己是否一致,之后判断offset能否从backlog缓冲区中获取。如果可以获取,从就可以获得连接断开期间所有写命令,完成同步。

完全同步需要创建后台线程生成转储文件,这需要额外的内存开销,之后还需将转储文件传输给从库,而部分同步则不需要,所以部分同步的代价更小。因此,应当更多的使用部分同步,当主库接收数据量较大的时候,默认的repl-backlog-size值很容易导致使用完全同步。所以需要根据数据量调整repl-backlog-size的值,计算公式如下:t*(master_repl_offset2–master_repl_offset1)/(t2–t1)。其中,t是主从连接可能断开的时间,秒为单位,master_repl_offset通过峰值期间Info命令获取。

更多精彩干货分享,请关注本际云服务器推荐网。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6027.html