ZBLOG

chenjx@ubuntu:~/redis/redis-data$ sudo redis-server redis.conf 8069:C 01 Jul 2025 22:54:52.479 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can a...

这个警告信息表明 Redis 检测到系统的内存 overcommit 设置未启用,这可能会影响 Redis 的持久化操作(如 RDB 快照或 AOF 重写)或主从复制功能。以下是解决方案和详细说明:


1. 问题原因

Redis 依赖操作系统的内存分配机制。当 vm.overcommit_memory 设置为 0(默认值)时,内核会尝试评估剩余内存是否足够分配,可能导致 Redis 在内存不足时后台保存(BGSAVE)或复制失败。


2. 解决方法

临时生效(重启后失效)

sudo sysctl vm.overcommit_memory=1

永久生效

编辑 /etc/sysctl.conf 文件,添加以下配置:

sudo echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf

然后加载配置:

sudo sysctl -p

3. 参数解释

  • vm.overcommit_memory = 1
    允许内核超额分配内存,即使物理内存不足也会分配成功。这对 Redis 的持久化操作至关重要。

  • 其他可选值

    • 0(默认):启发式 overcommit,可能拒绝大块内存申请。
    • 2:禁止超过 swap + RAM × overcommit_ratio 的内存分配。

4. Redis 相关建议

  • 额外优化
    如果服务器专门运行 Redis,建议同时调整以下内核参数: “`bash echo “net.core.somaxconn = 1024” | sudo tee -a /etc/sysctl.conf echo “kernel.panic_on_oom = 0” | sudo tee -a /etc/sysctl.conf


    内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=8204

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?