在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
...
阅读(2779) | 评论(0) | 转发(0) |