记一次redis数据库RDB内存事故排查处理

事故表现:redis 状态正常,但客户端不能使用,定位日志结论,redis内存申请不通过,导致中断用户操作

解决办法

1.解锁相关配置(不能解决根本问题,根本原因来源于开发 使用姿势不对)

两种解决办法

一.打开系统层始终同意分配内存(不建议

编辑文件 /etc/sysctl.conf 添加 vm.overcommit_memory=1

内核参数overcommit_memory
它是 内存分配策略
可选值:0,1,2。
0,:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2: 表示内核允许分配超过所有物理内存和交换空间总和的内存。
二.解锁redis rdb快照失败依然可以进行执行命令

redis.conf修改

stop-writes-on-bgsave-error no
2.rdb文件 排查key大小(推荐!!!

需要准备python3、pip3 环境以及rdb文件

pip3 install rdbtools python-lzf

使用工具导入表格(文件越大,到处越慢)

rdb -c memory  ../dump.rdb >test.csv

导出到Windows电脑 按照size_in_bytes 栏 降序 即可 排查出 占用内存最大的key,如图单个key 占用700m !!! 无语至极
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鹅i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值