Can't save in background: fork: Cannot allocate memory
今天服务器提示不可用,查了了redis日志发现:
cat /data/redis/redis-server.log [1316] 17 Jun 13:49:28.032 * 1 changes in 900 seconds. Saving... [1316] 17 Jun 13:49:28.032 # Can't save in background: fork: Cannot allocate memory [1316] 17 Jun 13:49:34.059 * 1 changes in 900 seconds. Saving... [1316] 17 Jun 13:49:34.059 # Can't save in background: fork: Cannot allocate memory [1316] 17 Jun 13:49:40.069 * 1 changes in 900 seconds. Saving... [1316] 17 Jun 13:49:40.069 # Can't save in background: fork: Cannot allocate memory [1316] 17 Jun 13:49:46.098 * 1 changes in 900 seconds. Saving... [1316] 17 Jun 13:49:46.098 # Can't save in background: fork: Cannot allocate memory [1316] 17 Jun 13:49:52.026 * 1 changes in 900 seconds. Saving... [1316] 17 Jun 13:49:52.026 # Can't save in background: fork: Cannot allocate memory
因为Redis默认fork出一个进程来进行持久化到磁盘的工作,以防止主进程假死(大数据量时)。但是当主进程占用内存很大时,fork进程就不一定能够成功,所以出现这个错误。
修改方法:
# vim /etc/sysctl.conf vm.overcommit_memory = 1
sysctl -p
Linux内核会根据参数vm.overcommit_memory参数的设置决定是否放行。
overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
或者修改配置文件,设置最大使用内存,最大使用内存会导致数据被踢出:
maxmemory 1294967296(byte)
所以不建议使用第二个方法
转载于:https://blog.51cto.com/ckl893/1790322
Can't save in background: fork: Cannot allocate memory相关推荐
- Redis占用大量内存并且报错 Can‘t save in background: fork: Cannot allocate memory
Redis Can't save in background: fork: Cannot allocate memory 解决 先说如何解决: echo 'vm.overcommit_memory=1 ...
- redis可持续化存储的时候出现Can t save in background fork Cannot allocate memory
解决方案 直接修改内核参数 vm.overcommit_memory = 1, Linux内核会根据参数 vm.overcommit_memory 参数的设置决定是否放行. vm.overcommit ...
- -bash: fork: Cannot allocate memory问题,进程数满了的解决办法
-bash: fork: Cannot allocate memory问题,进程数满了的解决办法 参考文章: (1)-bash: fork: Cannot allocate memory问题,进程数满 ...
- fork: Cannot allocate memory 解决
解决的方法是扩大最大进程数目 查看当前的最大进程数 #systemctl kernel.pid_max kernel.pid_max = 32768 #echo 65536 > /proc/sy ...
- Redis 写磁盘出错 Cannot allocate memory
故障简介 早上查看Redis日志的时候发现Redis一直在报错 [1524] 24 Mar 10:00:56.037 * 1 changes in 900 seconds. Saving... [15 ...
- Cannot allocate memory问题
-bash: fork: Cannot allocate memory问题,进程数满了的解决办法 今天一大早来到公司就发现一台远程服务器的进程满了,无法连接上远程服务器,如下图所示: 出现这种情况,主 ...
- 【Linux】 -bash-4.2#问题和Cannot allocate memory
1,最近在实际使用linux的过程中中,遇到了一个小问题 在之前,看到根目录"/"下多了一个"~"目录,看到别的服务器都没有,于是忍不住rm -rf ~了.运行 ...
- mount cifs出现cannot allocate memory解决方法
今天囧了啊,在ubuntu挂载的文件夹里面解压数据库,结果linux嫌太大挂掉了直接mount error(12): Cannot allocate memory折腾了好久,终于发现解决办法: 方法一 ...
- 解决Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示
Android 启动模拟器是出现" Failed to allocate memory: 8"错误,模拟器无法启动,如下: [2012-11-26 13:40:12 - TestS ...
最新文章
- h5 video视频播放的同时加水印,图片加水印同样的原理
- git push throws error: RPC failed; result=22, HTTP
- python3 json安装_python3下JSON和JsonPath
- 2、Ktor学习-自动重新加载;
- 命名空间_python基础 13 类命名空间于对象、实例的命名空间,组合方法
- common lisp 学习第三天 函数、注释
- 安心加科技打造多维度全场景式安心加物联平台
- MinIO Docker 快速入门 ​​​​​​​
- linux rz上传文件及出错解决方案
- c语言程序设计pdf下载上海交大,C语言程序设计第1章参考标准答案(上海交大出版社).doc...
- pclint html报告,PC-lint 9 + 中文手册
- android模拟器加速,配置android模拟器加速(虚拟化加速)
- Python SMTP 163邮箱发送邮件不成功
- python123作业怎么提交_使用python提交作业
- 基于C++和QT实现的简单数独游戏软件
- 中邮消费金融面试随笔
- vue 中 数字0和空字符串,=== 和== 用法和区别
- 有隔板高效过滤器和无隔板高效过滤器区别在哪里
- 论文代码复现之:AMR Parsing as Sequence-to-Graph Transduction
- F2FS源码分析系列文章目录
热门文章
- mysql测试什么鬼,where 1=1 是什么鬼?SQL中有这玩意?
- 手机写python爬虫_零基础开始写Python爬虫心得
- oracle对象依赖关系图,Oracle concepts 学习笔记(4)——Schema对象间的依赖关系
- Vue购物商城项目(二) 数据请求使用
- idea java sdk找不到指定文件路径_java-IntelliJ找不到任何声明
- 二叉搜索树的删除_LeetCode109.有序链表转换二叉搜索树
- Maven项目出现web.xml is missing and 《failOnMissingWebXml》is set to true,已解决
- c语言课程案例设计报告,C语言课程设计报告—范例解读.doc
- 20200126:(leetcode)三数之和 最接近的三数之和(含图解)
- php pg connect 扩展,php安装gnupg扩展