Redis在启动时不成功, 查看日志发现如下警告:

  WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

 这句话的意思是:警告超委托内存设置为0!后台保存可能在低内存条件下失败。若要修复此问题,将“VM OpRebug内存=1”添加到/ETC/SysTL.CONF中,然后重新启动或运行命令“SysTtl VM.OpjExtRebug内存=1”,以使其生效。

  

  overcommit_memory(内核参数 内存分配策略)

  可选值:0、1、2。

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

Linux对大部分申请内存的请求都回复"yes",以便能跑更多更大的程序。因为申请内存后,并不会马上使用内存。这种技术叫做Overcommit。当linux发现内存不足时,会发生OOM killer(OOM=out-of-memory)。它会选择杀死一些进程(用户态进程,不是内核线程),以便释放内存。
当oom-killer发生时,linux会选择杀死哪些进程?选择进程的函数是oom_badness函数(在mm/oom_kill.c中),该函数会计算每个进程的点数(0~1000)。点数越高,这个进程越有可能被杀死。每个进程的点数跟oom_score_adj有关,而且oom_score_adj可以被设置(-1000最低,1000最高)。

解决方法:
  按提示的操作(将vm.overcommit_memory 设为1)即可:
  有三种方式修改内核参数,但要有root权限:
    (1)(编辑) vim(vi)/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效
      (2)sysctl vm.overcommit_memory=1
      (3)echo 1 > /proc/sys/vm/overcommit_memory

  再启动redis看看是否成功 如果失败 查看redis 的redis.conf 配置的 找到daemonize  如需要在后台运行,把该项的值改为yes

linux redis 启动 overcommit_memory的更多相关文章

  1. Linux+Redis实战教程_day02_2、redis简述及安装与启动

    2. redis简述及安装 关系型数据库(SQL): Mysql,oracle 特点:数据和数据之间,表和字段之间,表和表之间是存在关系的 例如:部门表 001部门,   员工表 001 用户表,用户 ...

  2. Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动

    Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动 >>>>>>>>>>>>>> ...

  3. Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动

    Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动 >>>>>>>>>>>& ...

  4. Redis加入Centos Linux开机启动

    Redis加入Centos Linux开机启动 网上有很多redis在linux下自动启动的例子,实现的方式很多,很多都是参考一个老外流传出来启动的例子,其实直接使用是不行,而且有很多地方有一些语法错 ...

  5. Redis 启动警告错误解决[转]

    Redis 启动警告错误解决 启动错误 1.WARNING overcommit_memory is set to 0! Background save may fail under low memo ...

  6. linux redis 安装

    linux下redis安装   我用的系统是:redhat [root@infa ~]# wget http://download.redis.io/releases/redis-2.8.12.tar ...

  7. Linux redis 配置文件

    # Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...

  8. Linux Redis 重启数据丢失解决方案,Linux重启后Redis数据丢失解决方

    Linux Redis 重启数据丢失解决方案,Linux重启后Redis数据丢失解决方案 >>>>>>>>>>>>>> ...

  9. redis 启动停止脚本

    redis 启动停止脚本,该redis需要密码登录,如没有密码,去掉stop函数里的 -a #!/bin/sh # #chkconfig: 2345 80 90 # Simple Redis init ...

随机推荐

  1. iOS sqlite大数据分段加载的实现,sqlite数据库的操作

    数据库管理类(自己封装的,挺简单的) // //  MyDataBaseManger.m //  DB_Test // //  Created by admin on 17/2/7. //  Copy ...

  2. 1093 字符串A+B

    给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集.要求先输出 A,再输出 B,但重复的字符必须被剔除. 输入格式: 输入在两行中分别给出 A 和 B,均为长度不超过 10​6​​ ...

  3. cocos-lua3.17 cocos studio lua动画使用

    这里只贴具体使用代码,资源请使用自己的. 这里的资源是cocos studio导出的lua文件,其中就有root和动画 function GameLayer:playLhAni() local ani ...

  4. L330 Black hole picture captured for first time in space ‘breakthrough’

    Black hole picture captured for first time in space ‘breakthrough’ Astronomers have captured the fir ...

  5. NOIP2011提高组 选择客栈

    原题 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖 ...

  6. 自动化测试-10.selenium的iframe与Frame

    前言 有很多小伙伴在拿163作为登录案例的时候,发现不管怎么定位都无法定位到,到底是什么鬼呢,本篇详细介绍iframe相关的切换 以http://mail.163.com/登录页面10为案例,详细介绍 ...

  7. 解决Arcgis相同投影仍出现偏差的问题

    网上下载了一个土地利用分类的polygon矢量图---导入arcgis--投影不是我想要的.出现了一些偏差 立即转换投影----按照网上教程--先定义投影-再定义坐标系---结果很糟糕,inconsi ...

  8. C# 连接池开发,多连接高效应用开发,多连接自动维护管理。

    本文将使用一个Github开源的组件库技术来实现连接池的操作,应用于一些情况下的频繁的网络连接操作. github地址:https://github.com/dathlin/HslCommunicat ...

  9. 【转】使用Mybatis时遇到的延迟加载造成返回异常的问题——HttpMessageConversionException: Type definition error

    在使用Mybatis的过程中,使用了resultMap延迟加载. 延迟加载:association联表查询的过程中,查询另外两个表的对象.而延迟加载是指只有在使用这两个对象的时候才会进行查询. 问题的 ...

  10. UVa699

    这个建树的根选的很有意思,在中间作为树的根.所以二叉树建树的方法虽然一般是有两种数组的方法,一个是如果深度不太大的话,可以之间用2*k+1,2*k建树,如果很大的话,就挨着建树,弄一个结构体,有左右子 ...