redis数据库持久化问题处理「建议收藏」

redis数据库持久化问题处理「建议收藏」redis数据库问题整理一、数据无法持久化1、背景介绍:经开发人员告知redis有3万多条数据无法写入内存,数据持久化停滞状态。2、排查过程:经过排查redis日志,发现报错信息如下,经过查询得知为…

	redis数据库持久化问题处理[数据库教程]

redis数据库问题整理

一、数据无法持久化
1、背景介绍:
经开发人员告知redis有3万多条数据无法写入内存,数据持久化停滞状态。
2、排查过程:
经过排查redis日志,发现报错信息如下,经过查询得知为此报错为7月10日导入大量数据后导致的,判断为内存突增导致写入失败。
redis数据库持久化问题处理
3、解决办法:
从系统层面优化Centos系统,添加系统参数vm.overcommit_memory = 1?到/etc/sysctl.conf配置文件中,然后执行sysctl -p命令。

vm.overcommit_memory参数说明:
vm.overcommit_memory = 0 ? 启发策略
比较 此次请求分配的虚拟内存大小和系统当前空闲的物理内存加上swap,决定是否放行。系统在为应用进程分配虚拟地址空间时,会判断当前申请的虚拟地址空间大小是否超过剩余内存大小,如果超过,则虚拟地址空间分配失败。因此,也就是如果进程本身占用的虚拟地址空间比较大或者剩余内存比较小时,fork、malloc等调用可能会失败。
?vm.overcommit_memory = 1 允许overcommit
直接放行,系统在为应用进程分配虚拟地址空间时,完全不进行限制,这种情况下,避免了fork可能产生的失败,但由于malloc是先分配虚拟地址空间,而后通过异常陷入内核分配真正的物理内存,在内存不足的情况下,这相当于完全屏蔽了应用进程对系统内存状态的感知,即malloc总是能成功,一旦内存不足,会引起系统OOM杀进程,应用程序对于这种后果是无法预测的。

redis数据库持久化问题处理

原文地址:https://blog.51cto.com/12276890/2512611

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7184.html

(0)
上一篇 2023-03-25 15:00
下一篇 2023-03-25

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注