返回顶部
首页 > 资讯 > 操作系统 >linux下redis数据库overcommit_memory报错怎么解决
  • 384
分享到

linux下redis数据库overcommit_memory报错怎么解决

2023-06-29 07:06:16 384人浏览 安东尼
摘要

本篇内容主要讲解“linux下redis数据库overcommit_memory报错怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下Redis数据库overcommit_mem

本篇内容主要讲解“linuxredis数据库overcommit_memory报错怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下Redis数据库overcommit_memory报错怎么解决”吧!

背景

公司的redis有时background save db不成功,通过log发现下面的告警,很可能由它引起的:

[13223] 17 Mar 13:18:02.207 # 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.

于是通过搜索,也有人跟我遇到同样的问题,基本可以确定是由它引起的。

内核参数overcommit_memory 

它是 内存分配策略

可选值:0、1、2。

  • 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

  • 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

  • 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

什么是Overcommit和OOM

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)编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效

  • (2)sysctl vm.overcommit_memory=1

  • (3)echo 1 > /proc/sys/vm/overcommit_memory

到此,相信大家对“linux下redis数据库overcommit_memory报错怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: linux下redis数据库overcommit_memory报错怎么解决

本文链接: https://lsjlt.com/news/323289.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux下redis数据库overcommit_memory报错怎么解决
    本篇内容主要讲解“linux下redis数据库overcommit_memory报错怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下redis数据库overcommit_mem...
    99+
    2023-06-29
  • 解决linux下redis数据库overcommit_memory问题
    背景 公司的redis有时background save db不成功,通过log发现下面的告警,很可能由它引起的: [13223] 17 Mar 13:18:02.207 # WAR...
    99+
    2024-04-02
  • linux启动oracle数据库报错怎么解决
    要解决Linux启动Oracle数据库报错的问题,您可以尝试以下几种方法: 检查Oracle数据库的日志文件,查看具体的错误信息...
    99+
    2024-04-09
    linux oracle
  • linux安装mysql数据库报错怎么解决
    要解决Linux安装MySQL数据库报错,有以下几种方法可以尝试: 检查系统环境:确保已经安装了所有必需的依赖包和软件。例如,安...
    99+
    2024-04-09
    linux mysql
  • ​phpMyAdmin下管理MySQL数据库报错怎么解决
    本文小编为大家详细介绍“phpMyAdmin下管理MySQL数据库报错怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“phpMyAdmin下管理MySQL数据库报错怎么解决”文章能帮助大家解决疑惑,...
    99+
    2022-12-05
    mysql
  • 数据库报错django.db.utils.InternalError怎么解决
    这篇“数据库报错django.db.utils.InternalError怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文...
    99+
    2024-04-02
  • 怎么解决数据库报错RMAN-05001
    本篇内容主要讲解“怎么解决数据库报错RMAN-05001”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决数据库报错RMAN-05001”吧!问题:RMAN...
    99+
    2024-04-02
  • 怎么解决数据库ORA-01455报错
    本篇内容介绍了“怎么解决数据库ORA-01455报错”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!今天在用...
    99+
    2024-04-02
  • 怎么解决数据库报错ORA-32004
    本篇内容主要讲解“怎么解决数据库报错ORA-32004”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决数据库报错ORA-32004”吧!问题:--ORA-...
    99+
    2024-04-02
  • 数据库报08006错误怎么解决
    错误代码08006是PostgreSQL数据库连接错误的一种常见错误。它表示连接已被服务器重置,通常是由于连接超时或服务器关闭造成的...
    99+
    2023-08-29
    数据库
  • linux中redis重启报错怎么解决
    在Linux中,当Redis重启出现错误时,可以按照以下步骤来解决问题: 检查Redis配置文件是否正确:使用命令redis-c...
    99+
    2024-03-04
    linux redis
  • 怎么解决数据库alert报错ORA-00202
    本篇内容主要讲解“怎么解决数据库alert报错ORA-00202”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决数据库alert报错ORA-00202”吧...
    99+
    2024-04-02
  • 怎么解决数据库报错APP-PAY-06153
    本篇内容主要讲解“怎么解决数据库报错APP-PAY-06153”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决数据库报错APP-PAY-06153”吧!报...
    99+
    2024-04-02
  • 怎么解决数据库报错ERROR 1786 (HY000)
    这篇文章主要介绍“怎么解决数据库报错ERROR 1786 (HY000)”,在日常操作中,相信很多人在怎么解决数据库报错ERROR 1786 (HY000)问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2024-04-02
  • django数据库报错django.db.utils.OperationalError 1045,1049,2003怎么解决
    本篇内容介绍了“django数据库报错django.db.utils.OperationalError 1045,1049,2003怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习...
    99+
    2023-07-05
  • sqlserver附加数据库报错怎么解决
    SQL Server附加数据库时,可能会出现多种错误,例如数据库文件的路径不正确、数据库文件已经在使用中、数据库文件损坏等。以下是一...
    99+
    2024-04-13
    sqlserver
  • mysql数据库同步报错怎么解决
    数据库同步报错可能由多种原因引起,以下是一些常见的解决方法: 检查数据库连接是否正常:确保源数据库和目标数据库之间的连接正常,可...
    99+
    2024-03-06
    mysql
  • db2数据库报-551错误怎么解决
    DB2数据库报-551错误通常是由于缺少对特定对象的权限所导致的。要解决这个问题,您可以按照以下步骤操作: 确保您有足够的权限来...
    99+
    2024-04-08
    db2
  • linux中yum下载报错怎么解决
    当在Linux中使用yum下载时,可能会遇到一些错误。以下是一些常见的yum下载错误及其解决方法: 错误:“Could not ...
    99+
    2024-02-29
    linux
  • 怎么解决数据库ORA-31693 ORA-00001报错
    这篇文章主要讲解了“怎么解决数据库ORA-31693  ORA-00001报错”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决数据库ORA-...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作