Redis持久化失败,MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist o

1. 错误描述

MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

Redis日志描述:

21222:C 25 Feb 03:58:01.811 * RDB: 70 MB of memory used by copy-on-write
797:M 25 Feb 03:58:01.825 * Background saving terminated with success
797:M 25 Feb 04:03:02.100 * 10 changes in 300 seconds. Saving...
797:M 25 Feb 04:03:02.101 # Can't save in background: fork: Cannot allocate memor

2. RBD持久化方式

当redis保存dump.rdb文件时:

  1. 首先,父进程fork一个子进程,此时的redis拥有父子进程
  2. 子进程将数据集写到一个临时的rdb文件中
  3. 但子进程对新的rdb写入完成后,redis会使用新文件去替换旧的rdb文件,然后将旧的删掉。

这种工作方式可以使得Redis可以从写时复制(copy-on-write)机制中获益!

3. 报错分析

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

内存分配策略参数

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

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

3. 解决方案

  1. 忽略持久化异常,继续写入
    xxx> config set stop-writes-on-bgsave-error no
  2. 修改Linux内存分配策略
    vim /etc/sysctl.conf
    # ---
    vm.overcommit_memory = 1
    
全部评论

相关推荐

10-02 19:29
已编辑
浙江科技大学 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 你的mentor是什么样的人? #
3895次浏览 28人参与
# 你觉得mentor喜欢什么样的实习生 #
10253次浏览 284人参与
# 智慧芽求职进展汇总 #
17827次浏览 106人参与
# 帮我看看,领导说这话什么意思? #
6110次浏览 25人参与
# 没有家庭托举的我是怎么找工作的 #
12292次浏览 158人参与
# 怎么给家人解释你的工作? #
1371次浏览 16人参与
# 平安产险科技校招 #
2404次浏览 0人参与
# 求职低谷期你是怎么度过的 #
5208次浏览 91人参与
# 26届秋招公司红黑榜 #
11934次浏览 41人参与
# 从哪些方向判断这个offer值不值得去? #
6545次浏览 93人参与
# 同bg的你秋招战况如何? #
158817次浏览 927人参与
# 度小满求职进展汇总 #
10078次浏览 51人参与
# 实习必须要去大厂吗? #
146625次浏览 1541人参与
# 校招泡的最久的公司是哪家? #
4531次浏览 22人参与
# 你有哪些缓解焦虑的方法? #
37173次浏览 835人参与
# 面试紧张时你会有什么表现? #
1694次浏览 20人参与
# 你喜欢工作还是上学 #
77572次浏览 860人参与
# 入职第一天,你准备什么时候下班 #
85471次浏览 467人参与
# 秋招想进国企该如何准备 #
97706次浏览 487人参与
# 简历无回复,你会继续海投还是优化再投? #
103582次浏览 819人参与
# 机械人的工作环境真的很差吗 #
25014次浏览 119人参与
# 独居后,你的生活是更好了还是更差了? #
28125次浏览 263人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务