redis 主重复制ERR Unable to perform background save问题

在192.168.171.139:6381的redis上手动执行了slaveof 192.168.171.140 6381 后发现没有时行数据同步,查看日志发现有报错信息:
[codis@192_168_171_139 redis_conf]$ tail -f redis6381.log
...
[26050] 04 Nov 13:30:43.785 * Connecting to MASTER 192.168.171.140:6381
[26050] 04 Nov 13:30:43.785 * MASTER SLAVE sync started
[26050] 04 Nov 13:30:43.786 * Non blocking connect for SYNC fired the event.
[26050] 04 Nov 13:30:43.786 * Master replied to PING, replication can continue...
[26050] 04 Nov 13:30:43.786 * Partial resynchronization not possible (no cached master)
[26050] 04 Nov 13:30:43.787 * Full resync from master: 82332b04925c01b400707707ea3c765c32f69e7c:1
[26050] 04 Nov 13:30:43.787 # MASTER aborted replication with an error: ERR Unable to perform background save
...
master端也有ERROR日志产生
[codis@192_168_171_140 redis_conf]$ tail -f redis6381.log
[26035] 04 Nov 13:36:40.900 * Slave asks for synchronization
[26035] 04 Nov 13:36:40.900 * Full resync requested by slave.
[26035] 04 Nov 13:36:40.900 * Starting BGSAVE for SYNC
[26035] 04 Nov 13:36:40.900 # Can't save in background: fork: Cannot allocate memory
[26035] 04 Nov 13:36:40.900 * Replication failed, can't BGSAVE
多主查询原因是redis启动时有报一个warning
[codis@192_168_171_140 redis_conf]$ head redis6381.log  -n 100
...
[12680] 03 Jun 19:18:37.372 # Server started, Redis version 2.8.13
[12680] 03 Jun 19:18:37.372 # 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.
...
操作方式日志已经说得很清楚了
添加vm.overcommit_memory = 1到/etc/sysctl.conf或者sysctl vm.overcommit_memory=1临时生效.

vm.overcommit_memory = 1这个内核参数是内存分配策略

可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

修改完之后可以看到日志显示已经在同步中
[codis@192_168_171_140 redis_conf]$ tail -f redis6381.log
...
[26035] 04 Nov 13:47:22.879 * Slave asks for synchronization
[26035] 04 Nov 13:47:22.880 * Full resync requested by slave.
[26035] 04 Nov 13:47:22.880 * Starting BGSAVE for SYNC
[26035] 04 Nov 13:47:22.917 * Background saving started by pid 19713
...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值