Redis fork进程分配不到内存解决方案
MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.
Redis Bgsave 命令用于在后台异步保存当前数据库的数据到磁盘。
BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
语法
redis Bgsave 命令基本语法如下:
redis 127.0.0.1:6379> BGSAVE
原因:
在BGSAVE时,Redis会fork一个子进程,把数据保存到硬盘上。你可以通过查看日志来获取BGSAVE失败的原因(Linux系统里Redis日志文件通常是在/var/log/redis/redis-server.log),大多数时候BGSAVE失败的原因是fork进程分配不到内存。更多时候,fork进程分配不到内存是因为跟操作系统的优化相冲突,即使操作系统有足够的内存。
解决方法一:
修改redis.conf文件:
vim redis.conf
然后使用快捷匹配模式:/stop-writes-on-bgsave-error定位到stop-writes-on-bgsave-error字符串所在位置,接着把后面的yes设置为no即可。
解决方法二:
修改sysctl.conf文件,
sudo vim /etc/sysctl.conf
添加配置:
vm.overcommit_memory=1
执行命令,使其生效
sudo sysctl -p /etc/sysctl.conf
重启Redis。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
redis与memcached的区别_动力节点Java学院整理
Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器。那么redis与memcached有什么区别呢?下面小编给大家介绍下redis与memcached的区别,感兴趣的朋友参考下吧2017-08-08Spring redis使用报错Read timed out排查及解决过程
项目使用spring集成redis,偶尔会出现read timed out的情况,刚开始以为是网络不稳定引起的,后面发现影响业务测试的准确性,这篇文章主要给大家介绍了关于Spring redis使用报错Read timed out排查及解决过程的相关资料,需要的朋友可以参考下2024-02-02
最新评论