本文主要是介绍Can’t save in background: fork: Cannot allocate memory,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在ELK日志系统中,用redis作为日志的缓存。但今天发现,redis数据不变,而且从redis读数据的logstash报错:
Redis "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk"
查看redis的日志,报下面的错:
Can’t save in background: fork: Cannot allocate memory
原因:
redis异步回写即BGSAVE命令实现数据的持久化。主进程fork后,复制自身并通过这个新的进程回写磁盘,回写结束后新进程自行关闭。
在小内存的进程上做一个fork,不需要太多资源,但当这个进程的内存空间以G为单位时,fork就成为一件很恐怖的操作。何况在16G内存的主机上fork
这篇关于Can’t save in background: fork: Cannot allocate memory的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!