资讯专栏INFORMATION COLUMN

redis 写磁盘出错Cannot allocate memory

My_Oh_My / 3299人阅读

摘要:找到原因之后,直接修改内核参数内核会根据参数参数的设置决定是否放行。如果,直接放行则比较此次请求分配的虚拟内存大小和系统当前空闲的物理内存加上,决定是否放行。

查看 Redis 日志
发现系统在频繁报错:

[1821] 10 Nov 09:59:04.086 # Can"t save in background: fork: Cannot allocate memory
[1821] 10 Nov 09:59:10.002 * 1 changes in 900 seconds. Saving...

在小内存的进程上做一个fork,不需要太多资源,但当这个进程的内存空间以G为单位时,fork就成为一件很恐怖的操作。何况在16G内存的主机上fork 14G内存的进程呢?肯定会报内存无法分配的。更可气的是,越是改动频繁的主机上fork也越频繁,fork操作本身的代价恐怕也不会比假死好多少。

找到原因之后,直接修改内核参数 vm.overcommit_memory = 1

Linux内核会根据参数vm.overcommit_memory参数的设置决定是否放行。

如果 vm.overcommit_memory = 1,直接放行
vm.overcommit_memory = 0:则比较 此次请求分配的虚拟内存大小和系统当前空闲的物理内存加上swap,决定是否放行。
vm.overcommit_memory = 2:则会比较 进程所有已分配的虚拟内存加上此次请求分配的虚拟内存和系统当前的空闲物理内存加上swap,决定是否放行。

linux设置vm.overcommit_memory 方法
永久性修改内核参数

/etc/sysctl.conf文件里面加入或者直接删除也可以,因为它缺省值就是0

vm.overcommit_memory = 0

运行使之生效

#sysctl -p

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/36064.html

相关文章

  • Redis 磁盘出错 Cannot allocate memory

    摘要:,直接放行则比较此次请求分配的虚拟内存大小和系统当前空闲的物理内存加上,决定是否放行。在文件里面加入或者直接删除也可以,因为它缺省值就是 故障简介 早上查看Redis日志的时候发现Redis一直在报错 [1524] 24 Mar 10:00:56.037 * 1 changes in 900 seconds. Saving... [1524] 24 Mar 10:00:56.037 #...

    haoguo 评论0 收藏0
  • redis持久化和常见故障

    摘要:文件状态监控其中跟文件状态监控相关的参数表明上次保存以后改变的次数表示当前是否在进行操作。允许分配超出物理内存加上交换内存的请求内核总是返回的数据回写机制分为两种同步回写即命令。最好的办法是扩大物理内存。 redis 主从复制 Redis主从复制的原理 当建立主从关系时,slave配置slaveof 。slave服务器会向主服务器发送一个sync命令。master接受并fork一个...

    Cheng_Gang 评论0 收藏0
  • Redis 4.0 功能简介

    摘要:每个的元信息使用的内存,这里只使用了,所以只打印了的内存使用状态,当使用其他时也会有相应的信息。是可选参数默认为,以为例看下其如果工作首先类似于上一节中的,要计算的元信息内存,包括表的大小以及所有的内存占用信息。 本文将对 Redis 4.0 的各项主要新功能做一个简单的介绍。模块系统 Redis 4.0 发生的最大变化就是加入了模块系统, 这个系统可以让用户通过自己编写的代码来扩展和...

    happyhuangjinjin 评论0 收藏0
  • win10 Redis的安装使用及配置

    摘要:原文地址下载安装版是上的一个开源项目我们可以直接下载解压使用。通过快捷方式启动服务修改的默认配置设置的最大占用内存设置最大占用内存,打开配置文件,找到如下段落,设置参数,是字节类型,注意转换。是近期最少使用算法。 原文地址 下载安装 Redis--Window版是GitHub上的一个开源项目我们可以直接下载解压使用。 Download Now 在D盘下新建Redis文件(这个路径可以...

    张利勇 评论0 收藏0
  • win10 Redis的安装使用及配置

    摘要:原文地址下载安装版是上的一个开源项目我们可以直接下载解压使用。通过快捷方式启动服务修改的默认配置设置的最大占用内存设置最大占用内存,打开配置文件,找到如下段落,设置参数,是字节类型,注意转换。是近期最少使用算法。 原文地址 下载安装 Redis--Window版是GitHub上的一个开源项目我们可以直接下载解压使用。 Download Now 在D盘下新建Redis文件(这个路径可以...

    FingerLiu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<